03运算方法和运算器_第1页
03运算方法和运算器_第2页
03运算方法和运算器_第3页
03运算方法和运算器_第4页
03运算方法和运算器_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第三章 运算方法和运算器运算方法和运算器 掌握掌握进位计数制之间的转换进位计数制之间的转换 熟练掌握熟练掌握原码、补码和反码的表示方法和特点,尤其原码、补码和反码的表示方法和特点,尤其 是补码;是补码; 掌握掌握定点数与浮点数表示的概念、方法和特点;定点数与浮点数表示的概念、方法和特点; 掌握掌握定点补码加减法溢出的判断;定点补码加减法溢出的判断; 理解理解定点数一位乘除法运算;定点数一位乘除法运算; 了解了解浮点数的四则运算;浮点数的四则运算; 掌握掌握运算器组成与功能;运算器组成与功能; 理解理解校验码的作用,校验码的作用,掌握掌握奇偶校验码和循环冗余校验奇偶校验码和循环冗余校验 码

2、。码。 第三章第三章 运算方法和运算器运算方法和运算器 所有进入计算机系统的信息都必须转换成二所有进入计算机系统的信息都必须转换成二 进制代码形式的数据,二进制码是计算机唯一能进制代码形式的数据,二进制码是计算机唯一能 够理解的机器语言。够理解的机器语言。 一、数值数据的表示一、数值数据的表示 二、非数值数据的表示二、非数值数据的表示 三、数据校验码三、数据校验码 计算机内部信息计算机内部信息 数据数据 指令指令 数值型数据和非数值型数据数值型数据和非数值型数据 一台计算机所有机器指令的集合称一台计算机所有机器指令的集合称 为该计算机的指令系统为该计算机的指令系统 一、数值数据的表示一、数值数

3、据的表示 1. 1. 进位计数制进位计数制 2. 2. 二进制二进制 3. 3. 进位计数制的转换方法进位计数制的转换方法 v 进位计数制及其相互转换进位计数制及其相互转换 v 数值数据的机器码表示数值数据的机器码表示 1. 1. 进位计数制进位计数制 凡是用数字符号排列,按由低位向高位进凡是用数字符号排列,按由低位向高位进 位计数的方法叫做位计数的方法叫做进位计数进位计数,简称,简称进位制进位制。 如:十进制、二进制、八进制、十六进制如:十进制、二进制、八进制、十六进制 1. 1. 进位计数制进位计数制 基数基数 权权 一种进数制允许选用基本数学符号的个数叫基数。一种进数制允许选用基本数学符

4、号的个数叫基数。 在基数为在基数为J的计数制中,包含的计数制中,包含J个不同的数字符号,每个数位计个不同的数字符号,每个数位计 满满J就向高位进就向高位进1,即,即“逢逢J进一进一”。例如最常用的十进制,其例如最常用的十进制,其 基数为基数为1010,每位计满,每位计满1010向高位进向高位进1 1。 每个数字符号所表示的数值等于该数字符号值乘以一个与数每个数字符号所表示的数值等于该数字符号值乘以一个与数 码所在位有关的常数,这个常数叫做码所在位有关的常数,这个常数叫做“位权位权”,简称,简称“权权”。 位权的大小是以基数为底,数码所在位置的序号为指数的整位权的大小是以基数为底,数码所在位置的

5、序号为指数的整 数次幂。数次幂。 例如十进制数的十分位、个位、十位、百位、千位的权依次例如十进制数的十分位、个位、十位、百位、千位的权依次 是是1010-1 -1、 、10100 0、10101 1、10102 2、10103 3。 1. 1. 进位计数制进位计数制 十进制每位的值等于该位的权与该位数码的乘积。十进制每位的值等于该位的权与该位数码的乘积。 一个十进制数可以写成按权展开的多项式和的形一个十进制数可以写成按权展开的多项式和的形 式。式。 例如:将十进制数例如:将十进制数789.23789.23按权展开按权展开 789.23 = 2 107 1 108 0 109 1 102 2 1

6、03 2. 2. 二进制二进制 v 二进制二进制 v 代码代码 v 优点优点 基数为基数为2 2的计数制叫二进制。二进制只有的计数制叫二进制。二进制只有“0 0”和和 “1 1”两种数码,计数逢二进一。两种数码,计数逢二进一。 表示信息的数字符号称为代码。表示信息的数字符号称为代码。 引入二进制的优点引入二进制的优点 技术容易实现;技术容易实现; 二进制运算规则简单;二进制运算规则简单; 计算机中二进制数的计算机中二进制数的0 0、1 1数码与逻辑代数码与逻辑代 数变量值数变量值0 0与与1 1吻合,使计算机方便地进吻合,使计算机方便地进 行逻辑运算;行逻辑运算; 二进制数和十进制数之间的关系

7、不复杂,二进制数和十进制数之间的关系不复杂, 易于相互转换。易于相互转换。 3. 3. 进位计数制的转换方法进位计数制的转换方法 整数转换方法整数转换方法除基取余法除基取余法 小数转换方法小数转换方法乘基取整法乘基取整法 十进制数十进制数 二进制数二进制数 任意进制数任意进制数 十进制数十进制数 十进制数十进制数 任意进制数任意进制数 二进制二进制 八进制八进制 十六进制十六进制 整数转换方法整数转换方法除基取余法除基取余法 例例1 1: 把十进制数把十进制数205转换成二进制数转换成二进制数 十进制数十进制数余数余数 205 102 51 25 12 6 3 1 0 2 2 2 2 2 2

8、2 2 1 0 1 1 0 0 1 1最高位最高位 最低位最低位 换算结果是(换算结果是(205205)10 10= =( (1100110111001101)2 2 小数转换方法小数转换方法乘基取整法乘基取整法 例例2 2:把十进制小数:把十进制小数0.8125转换成二进制小数转换成二进制小数 十进制数十进制数积的整数部分积的整数部分 0.8125 2 x 11.6250 x 2 0.625 1.250 1 0.25 2 2 x 0.50 x 1.0 0 1 换算结果是(换算结果是(0.81250.8125)10 10= =( (0.11010.1101)2 2 最高位最高位 最低位最低位

9、二进制、八进制、十六进制之间的转换二进制、八进制、十六进制之间的转换 数字后面加数字后面加B(binary)二进制数,二进制数,0、1 数字后面加数字后面加Q(octal)八进制数,八进制数,0-7 数字后面加数字后面加H(hexadecimal)十六进制数十六进制数 0,9,A, B, C, D, E, F 数字后面加数字后面加D(decimal)或不加或不加十进制数,十进制数,0-9 例例3:将二进制数:将二进制数10110.0011B按八进制书写按八进制书写 10110.0011B = 2614 结果结果 10110.0011B = 26.14Q . 110 . 001 1B10000

10、或(或(10110.0011)2 = (26.14)8 二进制、八进制、十六进制之间的转换二进制、八进制、十六进制之间的转换 例例4:将八进制数:将八进制数37.26转换成二进制数转换成二进制数 3 7 . 2 6 011111010 110. 结果结果 (37.26)8=(11111.01011)2 二进制、八进制、十六进制之间的转换二进制、八进制、十六进制之间的转换 例例5:将:将(100101011011.100011)2转换成十六转换成十六 进制形式进制形式 (100101011011.100011)2 = (9 5B 8C)16 结果结果 (100101011011.100011)2

11、 = (95B.8C)16 . .10110101(10011000 1100)2 二进制、八进制、十六进制之间的转换二进制、八进制、十六进制之间的转换 例例6:将:将(AB.CD)16还原成二进制形式还原成二进制形式 (AB.CD)16 (5103.44)8 例例7:将:将(5103.44)8转换成十六进制数转换成十六进制数 (1010 (A = (1010 1011. 1100 1101)2 0100 0011 1001)2 = (101 001 000 011 100 100)2. 43 9)16. . = 任意进制数转换成十进制数任意进制数转换成十进制数 方法:方法:把任意制数各位的权

12、与该位上的数码相把任意制数各位的权与该位上的数码相 乘,乘积逐项相加,其和便是相应的十进制数乘,乘积逐项相加,其和便是相应的十进制数 例例8:十六进制数:十六进制数(9BF.8)16转换成十进制数转换成十进制数 (9BF.8)16= 9x162+11x161+ 15x160+ 8x16-1 = 2495.5 十进制数转换成任意进制数十进制数转换成任意进制数 方法:方法:十进制数转换成任意进制数与十进制数十进制数转换成任意进制数与十进制数 转换成二进制数的方法完全相同转换成二进制数的方法完全相同 整数整数部分采用除基取余的方法部分采用除基取余的方法 小数小数部分采用乘基取整的方法部分采用乘基取整

13、的方法 然后将整数与小数拼接成一个数作为转换的最后结然后将整数与小数拼接成一个数作为转换的最后结 果果 小测验小测验 200.25转换成二进制数为转换成二进制数为_,八进,八进 制数为制数为_,十六进制数为,十六进制数为 _。 数值数据的机器码表示数值数据的机器码表示 v 符号数的机器码表示符号数的机器码表示 v 定点数与浮点数定点数与浮点数 v 十进制数的编码十进制数的编码 符号数的机器码表示符号数的机器码表示 机器数机器数 在计算机中表示的带符号的二进制数称为机器数。在计算机中表示的带符号的二进制数称为机器数。 符号位符号位 +和和-在机器里用在机器里用1位二进制来表示。通常这个符号位二进

14、制来表示。通常这个符号 放在二进制数的最高位,称为符号位。放在二进制数的最高位,称为符号位。0表示表示+,1 表示表示-。 真值真值 带符号位的机器数对应的数值带符号位的机器数对应的数值 例例9:写出机器数:写出机器数(01001)2、(11011)2的真值的真值 01001真值 真值 = (+1001)2= +9 11011真值 真值 = (-1011)2= -11 符号数的机器码表示符号数的机器码表示 原码表示法原码表示法 反码表示法反码表示法 补码表示法补码表示法 原码表示法原码表示法 设机器字长为设机器字长为n+1位,定点小数的原码形式为位,定点小数的原码形式为x0. x1x2xn (

15、x0为符号位为符号位) ,则,则定点小数的原码定点小数的原码定义如下:定义如下: x原 原=x0. x1x2xn= x 0=x1 1-x=1+|x| -1x=0 设机器字长为设机器字长为n+1位,定点整数的原码形式为位,定点整数的原码形式为 xn xn-1xn-2 x0 (xn为符号位为符号位) ,定点整数的原码定点整数的原码定义如下:定义如下: x原 原= xn xn-1xn-2 x0 = x 0=x2n 2n-x=2n+|x| -2nx=0 原码表示法原码表示法 例例10:设机器字长为:设机器字长为8位位 真值真值 1001 -1001 0.1001 -0.1001 原码原码 000010

16、01 10001001 0.1001000 1.1001000 原码的性质原码的性质 真值真值0的原码表示有的原码表示有两种两种:+0原 原=000, ,-0原 原=100 原码表示的定点小数,表示范围为原码表示的定点小数,表示范围为|x|1,原码表示的定,原码表示的定 点整数的表示范围点整数的表示范围|x|2n 设机器字长为设机器字长为n+1位,则位,则 原码定点原码定点正正整数的表示范围整数的表示范围为为000011,即,即0 2n-1, 原码定点原码定点负负整数的表示范围整数的表示范围为为100111,即,即-0 -(2n-1), 原码定点整数的表示范围原码定点整数的表示范围: -(2n

17、-1) 2n-1 采用原码作乘除运算,比较方便,但作加减运算,运算采用原码作乘除运算,比较方便,但作加减运算,运算 规则比较复杂。规则比较复杂。 反码表示法反码表示法 设机器字长为设机器字长为n+1位,定点小数的反码形式为位,定点小数的反码形式为x0.x1x2xn (x0为符号位为符号位) ,则,则定点小数的反码定点小数的反码定义如下:定义如下: x反 反=x0. x1x2xn= x 0=x1 (2-2-n)+x -1x=0 设机器字长为设机器字长为n+1位,定点整数的反码形式为位,定点整数的反码形式为 xn xn-1xn-2 x0 (xn为符号位为符号位) ,定点整数的反码定点整数的反码定义

18、如下:定义如下: x反 反= xn xn-1xn-2 x0 = x 0=x2n (2n+1-1)+x -2nx=0 反码表示法反码表示法 例例11:设机器字长为:设机器字长为8位并用定点整数表示,若位并用定点整数表示,若 x=+110,y=-110,求,求x和和y的原码和反码的原码和反码 x原 原=00000110 x反 反=00000110 y原 原=10000110 y反 反=(28-1)+(-110) = 11111111-110 = 11111001 正数的反码与原码相同正数的反码与原码相同 负数的原码符号位不动,其余位取相反码负数的原码符号位不动,其余位取相反码 反码的性质反码的性质

19、 反码表示中,反码表示中,最高位最高位为为符号位符号位,0 0表示正,表示正,1 1表示负,表示负, 反码的符号位是经运算得到的可直接参加运算反码的符号位是经运算得到的可直接参加运算 正数的反码与其原码正数的反码与其原码相同相同;负数的原码符号位不动,;负数的原码符号位不动, 其余位取相反码其余位取相反码 0 0的的反码反码表示有表示有两种两种:+0+0反 反=00 =000 0,-0-0反 反=11 =111 1 定点整数的反码表示范围与原码相同:定点整数的反码表示范围与原码相同: -(2n-1) 2n-1 补码表示法补码表示法 设模为设模为M,则,则x的补码定义如下:的补码定义如下: x补

20、 补=M+x (mod M) 设机器字长为设机器字长为n+1位,定点小数的补码形式为位,定点小数的补码形式为x0. x1x2xn (x0为符号位为符号位) ,则,则定点小数的补码定点小数的补码定义如下:定义如下: 设机器字长为设机器字长为n+1位,定点整数的补码形式为位,定点整数的补码形式为 xn xn-1xn-2 x0 (xn为符号位为符号位) ,定点整数的补码定点整数的补码定义如下:定义如下: x补 补=x0. x1x2xn= x 0=x1 2+x=2-|x| -1x=0 mod 2 x补 补= xn xn-1xn-2 x0 = x 0=x2n 2n+1+x= 2n+1-|x| -2nx

21、B n 位乘数位乘数 = C, 0 = A C0 = 1 A+0 = A A+B = A A,C 右移一位右移一位 重复重复 n 次次 结束结束 Y 一位乘,是指每次按乘数的一位状态决定一位乘,是指每次按乘数的一位状态决定 运算操作运算操作 无符号整数一位乘法的硬件原理框图无符号整数一位乘法的硬件原理框图 右右移移一一位位 加加 B/不不加加 n 位位加加法法器器 B(被被乘乘数数) A Ca C C0 乘乘数数 控控制制 逻逻辑辑 乘乘积积 例例19:1101 x 1011 B (被乘数被乘数) 1 1 0 1 A 0 0 0 0 C (乘数乘数) 1 0 1 1 Ca 0 AC Ca 00

22、 0 0 0 C0=1+B 1 1 0 1 01 1 0 1 1 0 1 1 00 1 1 01 1 0 1 C0=1+B 1 1 0 1 10 0 1 1 01 0 0 11 1 1 0 C0=0+0 0 0 0 0 01 0 0 1 00 1 0 01 1 1 1 C0=1+B 1 1 0 1 10 0 0 1 01 0 0 01 1 1 1 无符号整数一位除法无符号整数一位除法 手算手算(1001010)2 / (1000)2 1001010 被除数被除数除数除数 1000 1 1000 1 0 0 110 0 1010 1 1000 10 余数余数 判断是否够减的方法判断是否够减的方法

23、 用逻辑线路进行比较判别用逻辑线路进行比较判别 恢复余数法恢复余数法:不论是否够减,都将被除数或余:不论是否够减,都将被除数或余 数减去除数。数减去除数。 若余数符号位为若余数符号位为0(即正)表明够减,上商(即正)表明够减,上商1; 若余数符号位为若余数符号位为1(即负)表明不够减,上商(即负)表明不够减,上商0 并加上余数。并加上余数。 然后余数左移一位再做下一步然后余数左移一位再做下一步 不恢复余数法(加减交替法)不恢复余数法(加减交替法): 当余数当余数A为正时,上商为正时,上商1,A左移一位再减除数左移一位再减除数B, 相当于执行相当于执行2A-B的运算;的运算; 若余数若余数A为负

24、,上商为负,上商0,并加除数以恢复余数即,并加除数以恢复余数即 A+B,下一步左移一位减去除数,下一步左移一位减去除数B,相当于执行,相当于执行 2(A+B)-B = 2A+B 不恢复余数法的算法流程图不恢复余数法的算法流程图 N Y Y N 开始开始 被除数被除数 = A, C 除数除数 = B N Y A A A,C 左移一位左移一位 A-B = A 重复重复 n-1 次次 结束结束 A,C 左移一位左移一位 A-B = A 商商 0:0 = C0 商商 1:1 = C0 A A 例例20:(00001000)2 / (0011)2 AC 0 0 0 01 0 0 0 0 0 0 10 0

25、 0 0 -B 1 1 0 1 11011B 1 1 1 0A00 0 0 0 1 1 0 00 0 0 0 +B 0 0 1 1 1 1 1 1A00 0 0 1 -B 1 1 0 1 1 1 1 1AR0 R2-R1-R2 “*”标记的运算标记的运算,表示,表示D1的数据由拨动开关的数据由拨动开关SW给出,开关给的给出,开关给的 是二进制的信号,注意二进制与十六进制间的转换。是二进制的信号,注意二进制与十六进制间的转换。 D1:0101H 0110001110000不用不用0101 011001001001000010101 二、非数值数据的表示二、非数值数据的表示 字符数据字符数据 汉字

26、汉字 语音语音 图象图象 图形图形 ASCII码码 编码方式数字、字音、字形、混合编码方式数字、字音、字形、混合 第一步采样;第二步量化第一步采样;第二步量化 第一步采样;第二步量化第一步采样;第二步量化 分解成图元,用指令描述每个图元及各分解成图元,用指令描述每个图元及各 图元间的联系图元间的联系 三、数据校验码三、数据校验码 数据校验码的定义数据校验码的定义 具有检错能力的校验码具有检错能力的校验码奇偶校验码奇偶校验码 具有纠错能力的校验码具有纠错能力的校验码循环冗余校循环冗余校 验码验码 数据校验码的定义数据校验码的定义 数据校验方法的思想数据校验方法的思想冗余校验冗余校验 除了原数据信

27、息外,还增加若干位编除了原数据信息外,还增加若干位编 码,这些新增的代码被称为码,这些新增的代码被称为校验位校验位 有效的数据位和校验位组合成有效的数据位和校验位组合成数据校数据校 验码验码 奇偶校验码奇偶校验码 数据数据 偶校验码偶校验码 奇校验码奇校验码 1000001 1000010 1000011 1000100 1000101 增加一位校验位使码字中增加一位校验位使码字中1 1的个数凑成奇数为的个数凑成奇数为奇校验奇校验 增加一位校验位使码字中增加一位校验位使码字中1 1的个数凑成偶数为的个数凑成偶数为偶校验偶校验 1000001010000011 1000010010000101

28、1000011110000110 1000100010000101 1000101110001010 循环冗余校验码循环冗余校验码CRC ( (cyclic redundancy check) ) 模模2运算运算 CRC码的编码方法码的编码方法 CRC的纠错原理的纠错原理 模模2运算运算 模模2加减加减 按位加,可用异或逻辑实现,模按位加,可用异或逻辑实现,模2加与模加与模2 减的结果相同。减的结果相同。 即:即:00=0,0 1=1 0=1,1 1=0。 模模2乘乘按按模模2加加求部分积之和求部分积之和 模模2除除按按模模2减减求部分余数求部分余数 上商的原则上商的原则:当部分余数的首位为:当部分余数的首位为1时,商取时,商取 1;当部分余数的首位为;当部分余数的首位为0时,商取时,商取0,当部分,当部分 的余数的位数小于除数的位数时,该余数即的余数的位数小于除数的位数时,该余数即 为最后余数。为最后余数。 模模2乘运算乘运算 例例22:1010 x101 1 0 1 0 1 0 1x 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 模模2除运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论