计算机组成原理No4数据的表示和运算-2_第1页
计算机组成原理No4数据的表示和运算-2_第2页
计算机组成原理No4数据的表示和运算-2_第3页
计算机组成原理No4数据的表示和运算-2_第4页
计算机组成原理No4数据的表示和运算-2_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成原理计算机组成原理Principles of Computer Composition2第二部分第二部分 数据的表示和运算数据的表示和运算 n 2.1 数制与编码数制与编码n 2.2 定点数表示和运算定点数表示和运算n 2.3 浮点数表示和运算浮点数表示和运算n 2.4 算术逻辑单元算术逻辑单元ALU3 2.2 定点数表示和运算定点数表示和运算 2.2.1 定点数的表示定点数的表示 1、无符号数的表示;、无符号数的表示; 2、有符号数的表示。、有符号数的表示。2.2.2 定点数的运算定点数的运算 1、定点数的位移运算;、定点数的位移运算; 2、原码定点数的加、原码定点数的加/减运算;

2、减运算; 3、补码定点数的加、补码定点数的加/减运算;减运算; 4、定点数的乘法运算、定点数的乘法运算42.2.1 定点数的表示定点数的表示定点数的表示定点数的表示所有数据的小数点位置固定不变所有数据的小数点位置固定不变理论上位置可以任意,但实际上数据表示有两种方法理论上位置可以任意,但实际上数据表示有两种方法(小数点位置固定(小数点位置固定- -定点表示法定点表示法/ /定点格式):定点格式): 纯小数纯小数 纯整数纯整数定点数表示:定点数表示: 有符号数有符号数 无符号数无符号数52.2.1 定点数的表示定点数的表示n1 1、无符号数的表示、无符号数的表示n在寄存器中的每一位均可用来存放数

3、值。在寄存器中的每一位均可用来存放数值。 8 位位 0 25516 位位 0 6553562.2.1 定点数的表示定点数的表示n2、有符号数的表示、有符号数的表示n定点纯小数定点纯小数x0 x1 x2 x3 xn-1 xn符号符号量值量值小数点固定于符号小数点固定于符号位之后,不需专门位之后,不需专门存放位置存放位置表示数的范围是表示数的范围是 0|12n72.2.1 定点数的表示定点数的表示n纯小数的表示范围纯小数的表示范围x=0.00.0 x=1.00.0 x=0正正0和负和负0都是都是0 x=0.11.1x=12n 最大最大x=0.00.01x=2n 最接近最接近0的正数的正数x=1.0

4、0.01 x=2n最接近最接近0的负数的负数x=1.11.1 x=(12n ) 最小最小82.2.1 定点数的表示定点数的表示n定点纯整数定点纯整数x x0 0 x x1 1 x x2 2 x x3 3 x xn-1 n-1 x xn n符号符号量值量值小数点固定于最后一位之小数点固定于最后一位之后,不需专门存放位置后,不需专门存放位置表示数的范围是表示数的范围是 0|2n192.2.1 定点数的表示定点数的表示定点表示法的特点定点表示法的特点定点数表示数的范围受字长限制,表示数的范围有限定点数表示数的范围受字长限制,表示数的范围有限; ;定点表示的精度有限定点表示的精度有限机器中,常用定点纯

5、整数表示机器中,常用定点纯整数表示; ;n常用的有:原码、补码、反码和移码常用的有:原码、补码、反码和移码102.2.1 定点数的表示定点数的表示n3、原码表示、原码表示(1) 定义定义x 为真值为真值n 为整数的位数为整数的位数整数整数x原原 = 0,x 2n x 02n x 0 x 2n带符号的绝对值表示带符号的绝对值表示如如x = +1110 x原原 = 0 , 1110 x原原 = 24 + 1110 = 1 , 1110 x = 1110用用 逗号逗号 将符号位将符号位和数值位隔开和数值位隔开112.2.1 定点数的表示定点数的表示n小数小数x x 为真值为真值 x 1 x 0 x

6、x 原原 = = 1 x 0 x 1x = + 0.1101x原原 = 0 . 1101 x = 0.1101x原原 = 1 ( 0.1101) = 1 . 1101 x = 0.1000000 x原原 = 1 ( 0.1000000) = 1 . 1000000 x = + 0.1000000 x原原 = 0 . 1000000用用 小数点小数点 将符号将符号位和数值位隔开位和数值位隔开用用 小数点小数点 将符号将符号位和数值位隔开位和数值位隔开122.2.1 定点数的表示定点数的表示(2) (2) 举例举例例例 1 已知已知 x原原 = 1.0011 求求x解解:x = 1 x原原 = 1

7、 1.0011 = 0.00110.0011由定义得由定义得例例2 已知已知 x原原 = 1,1100 求求 xx = 24 x原原 = 10000 1,1100 = 1100 1100解解:由定义得由定义得132.2.1 定点数的表示定点数的表示例例 3 已知已知 x原原 = 0.1101 求求 x例例 4 求求 x = 0 的原码的原码解解:设设 x = +0.0000解:解: x = + 0.1101同理,对于整数同理,对于整数+ 0原原 = 0,0000+0.0000原原 = 0.0000 x = 0.0000 0.0000原原 = 1.0000 0原原 = 1,0000 + 0原原

8、0原原 根据根据 定义定义 x原原 = 0.1101142.2.1 定点数的表示定点数的表示n(3)原码的表示范围)原码的表示范围 n对于定点整数:对于定点整数:一个一个n+1位原码能表示的最大正数为位原码能表示的最大正数为0111,即,即2n-1;能;能表示的最小数为绝对值最大的负数表示的最小数为绝对值最大的负数1111,即即-(2n-1)。n所以原码能表示的数值范围为:所以原码能表示的数值范围为: -(2n-1) x 2n-1。 n对于定点小数:对于定点小数:一个一个n+1位定点小数原码能表示的最大正数为位定点小数原码能表示的最大正数为0.111,n即即1-2-n;能表示的最小数为绝对值最

9、大的负数为;能表示的最小数为绝对值最大的负数为1.111,即,即-(1-2-n)。定点小数原码的数值范围为:。定点小数原码的数值范围为: n -(1-2-n) x 1-2-n。 152.2.1 定点数的表示定点数的表示n(4 4) 原码的特点原码的特点:简单、直观:简单、直观n但是用原码做加法时,会出现如下问题:但是用原码做加法时,会出现如下问题:加法加法 正正 正正加加加法加法 正正 负负加法加法 负负 正正加法加法 负负 负负减减减减加加 要求要求 数数1 1 数数2 2 实际操作实际操作 结果符号结果符号正正可正可负可正可负可正可负可正可负负负能否能否 只做加法只做加法 ? ? 找到一个

10、与负数等价的正数找到一个与负数等价的正数 来代替这个负数来代替这个负数162.2.1 定点数的表示定点数的表示n(5)原码的性质)原码的性质n1) 原码的最高位表示数的符号,原码的最高位表示数的符号,0表示正号,表示正号,1表示负号。表示负号。n 假设小数假设小数X的原码为:的原码为:X原原 = XS.Xn-1Xn-2X2X1X0,Xs是符号位,是符号位,可用下式来表示一个数的原码:可用下式来表示一个数的原码:n X原原 = Xs + |X|n2) 对于定点小数,把对于定点小数,把Xs作为数值位看待时,其位权为作为数值位看待时,其位权为1,则有:,则有:n 当当Xs=0时,时,1X原原0,故,

11、故1X=X原原0;n 当当Xs=1时,时,2X原原1,故,故01-X原原-1n 即即 2X原原0,其范围是:,其范围是:02-2-(n-1) ,真值为,真值为1X-1,其范围是:,其范围是:-(1-2 -(n-1) )+(1-2 -(n-1) )。n 3) 0不唯一不唯一n 定点小数定点小数 +0原原 = 0.00n -0原原 = 1.00n 整数整数 +0原原 = 000n -0原原 = 100172.2.1 定点数的表示定点数的表示4. 4. 补码表示法补码表示法(1) (1) 补的概念补的概念 时钟时钟逆时针逆时针- 363顺时针顺时针+ 9 615- 123可见可见 3 可用可用 +

12、9 代替代替记作记作 3 + 9 (mod 12)同理同理 4 + 8 (mod 12) 5 + 7 (mod 12) 时钟以时钟以 12为模为模减法减法 加法加法称称 + 9 是是 3 以以 12 为模的补数为模的补数182.2.1 定点数的表示定点数的表示n再如:再如:79-38=41 79+62=141n 如果要求是两位十进制运算器,多余的如果要求是两位十进制运算器,多余的100将自动丢弃。将自动丢弃。所以有所以有79-38=79+62n这里的这里的12和和100,在数学上叫做,在数学上叫做模。模。n模模是指一个计量系统的测量范围,其大小以计量进制的基是指一个计量系统的测量范围,其大小以

13、计量进制的基数为底,位数为指数的幂。两位十进制数测量范围数为底,位数为指数的幂。两位十进制数测量范围099,溢出量是溢出量是100,模就是,模就是102=100。192.2.1 定点数的表示定点数的表示n结论结论n一个负数加上一个负数加上 “模模” 即得该负数的补即得该负数的补两个互为补数的数两个互为补数的数 它们绝对值之和即为它们绝对值之和即为 模模 数数n 计数器(模计数器(模 1616)1011 0000 ? 101110110000+ 0101 101110000自然去掉自然去掉可见可见 1011 可用可用 + 0101 代替代替记作记作 1011 + 0101 (mod 24)同理同

14、理 011 + 101 (mod 23) 0.1001 + 1.0111 (mod 2)202.2.1 定点数的表示定点数的表示(2) 补码定义补码定义n整数整数 x 为真值,为真值, n 为整数的位数为整数的位数n例如:例如:x = +1010 则则 x补补 = 0,1010 x补补 = 0,x 2n x 02n+1 + x 0 x 2n(mod 2n+1)x = 1011000 x补补 = 27+1 +( 1011000 )= 10000000010110001,0101000用用 逗号逗号 将符号位将符号位和数值位隔开和数值位隔开212.2.1 定点数的表示定点数的表示n小数小数x 为真

15、值为真值x = + 0.1110 x补补 = x 1 x 02 + x 0 x 1(mod 2)如如x补补 = 0.1110 x = 0.11000001.0100000 x补补 = 2+( 0.1100000 )= 10.00000000.1100000用用 小数点小数点 将符号位将符号位和数值位隔开和数值位隔开222.2.1 定点数的表示定点数的表示n(3) (3) 求补码的快捷方式求补码的快捷方式= 100000= 1,011010101 + 1= 1,0110 又又x原原 = 1,1010则则x补补 = 24+1 1010= 11111 + 1 1010= 1111110101010+

16、 1设设 x = 1010 时时n当真值为当真值为 负负 时,补码时,补码 可用可用 原码除符号位外,每位原码除符号位外,每位取反,末位加取反,末位加 1 1 求得求得232.2.1 定点数的表示定点数的表示(4) (4) 举例举例解:解:x = + 0.0001解:由定义得解:由定义得x = x补补 2 = 1.0001 10.0000 x原原 = 1.1111例例 6 已知已知 x补补 = 1.0001求求 xx补补 x原原 ?由定义得由定义得例例 5 已知已知 x补补 = 0.0001 求求 x x = 0.1111 = 0.1111242.2.1 定点数的表示定点数的表示已知已知 x补

17、补 = 1,1110 求求 xn由定义:由定义:nx = x补补 2 4+1 n = 1,1110 100000n = 0010 x补补 x原原 ? x = 0010 x原原 = 1,0010n当真值为当真值为 负负 时,原码时,原码 可用可用 补码除符号位外,每补码除符号位外,每位取反,末位加位取反,末位加 1 1 求得求得252.2.1 定点数的表示定点数的表示n“0”的补码表示法的补码表示法n当当x=0时,时,n+0.0000补补=0.0000n-0.0000补补=2+(-0.0000)n =10.0000-0.0000=0.0000n显然显然+0补补=-0补补=0.0000,即补码中的

18、,即补码中的“零零”只有只有一种表示表示形式。一种表示表示形式。 262.2.1 定点数的表示定点数的表示(5)补码的表数范围。)补码的表数范围。一个一个n+1位整数补码能表示的最大数是位整数补码能表示的最大数是0111,即,即2n-1;能;能表示的最小数为表示的最小数为1000,即,即-2n。所以它能表示的数值范。所以它能表示的数值范围是:围是:-2n x 2n-1一个一个n+1位小数补码能表示的最大数是位小数补码能表示的最大数是0.111,即,即1-2-n;能表示的最小数为;能表示的最小数为1.00 0,即,即-1。所以它能表示的。所以它能表示的数值范围是:数值范围是:-1 x 1-2-n

19、对于小数,若对于小数,若x=-1,则根据小数补码定义,有,则根据小数补码定义,有x补补=2+x=10.0000-1.00001.0000。可见,。可见,-1本不属于小数范本不属于小数范围,但却有围,但却有-1补存在(其实在小数补码定义中已指明),补存在(其实在小数补码定义中已指明),这是由于补码中的零只有一种表示形式,故它比原码能多这是由于补码中的零只有一种表示形式,故它比原码能多表示一个表示一个“-1”。272.2.1 定点数的表示定点数的表示(6)补码的性质)补码的性质n1) 在补码表示法中,在补码表示法中,0的补码是唯一的,即的补码是唯一的,即n整数整数0 +0补补= 000n -0补补

20、= 2n+1-000 = 2n+1=000 (mod 2n+1)n小数小数0 +0补补= 0.000n -0补补= 2-0.000 = 2 =0.000 (mod 2)n 2) 假设一整数假设一整数X的补码表示为:的补码表示为:X补补=XSXn-1Xn-2X1X0,n XS是补码的符号位,标志整数是补码的符号位,标志整数X的符号,的符号,XS=0时,时,X为正数;为正数;XS=1时,时,X为负数。为负数。n 3) 补码的表示范围是:补码的表示范围是:n正整数正整数 2nX0n负整数负整数 0X-2nn 负数的范围比正数范围大,即多表示一个数负数的范围比正数范围大,即多表示一个数-2n。n 当当

21、X=-2n时,它的补码为:时,它的补码为:nX补补 = -2n补补 = 2n+1 -2n = 2n = 1000282.2.1 定点数的表示定点数的表示n5 5、反码表示法、反码表示法 (1) (1) 定义:整数反码定义:整数反码x反反 = 0,x 2n x 0( 2n+1 1) + x 0 x 2n(mod 2n+1 1)x x 为真值,为真值, n n 为整数的位数为整数的位数如如x = +1101x反反 = 0,1101 = 1,0010 x = 1101x反反 = (24+1 1) 1101 = 11111 1101292.2.1 定点数的表示定点数的表示n小数反码小数反码x反反 =

22、x 1 x 0( 2 2-n) + x 0 x 1(mod 2 2-n)x 为真值为真值x = +0.1101x反反 = 0.1101x = 0.1010 x反反 = (2 2-4) 0.1010= 1.1111 0.1010= 1.0101如如302.2.1 定点数的表示定点数的表示n(2) (2) 举例举例例:例: 求求 0 的反码的反码设设 x = +0.0000 x = 0.0000则:则:+0.0000反反= 0.0000则:则: 0.0000反反= 1.1111 + 0反反 0反反 解:解:同理,对于整数同理,对于整数+0反反= 0,0000 0反反= 1,1111例:例: 已知已

23、知 x反反 = 1,1110 求求 x由定义得由定义得x = x反反 (24+1 1)= 1,1110 11111= 0001例例 :已知:已知 x反反 = 0,1110 求求 x解:解:由定义得由定义得 x = + 1110解:解:312.2.1 定点数的表示定点数的表示(3)“0”的反码表示法的反码表示法n当当x=0时,时,n+0.0000反反=0.0000n-0.0000反反=(10.0000-0.0001)-0.0000=1.1111n可见可见+0反反不等于不等于-0反反,即反码中的,即反码中的“零零”也有两种表示形式。也有两种表示形式。(4)反码的表数范围)反码的表数范围n定点整数反

24、码的数值范围为:定点整数反码的数值范围为:-(2n-1)x2n-1。n定点小数原码的数值范围为:定点小数原码的数值范围为:-(1-2-n)x1-2-n。实际上,反码也可看作是实际上,反码也可看作是mod(2-2-n)(对于小数对于小数)或或mod(2n+1-1)(对对于整数于整数)的补码。与补码相比,仅在末位差的补码。与补码相比,仅在末位差1,因此有些书上称小数的,因此有些书上称小数的补码为补码为2的补码,而称小数的反码为的补码,而称小数的反码为1的补码。的补码。322.2.1 定点数的表示定点数的表示n三种机器数的小结三种机器数的小结n最高位为符号位,书写上用最高位为符号位,书写上用“,”(

25、整数)或(整数)或“.”(小数)(小数)将数值部分和符号位隔开将数值部分和符号位隔开对于正数,原码对于正数,原码 = 补码补码 = 反码反码对于负数对于负数 ,符号位为,符号位为 1,其,其 数值部分:数值部分: 原码除符号位外每位取反末位加原码除符号位外每位取反末位加 1 补码补码 原码除符号位外每位取反原码除符号位外每位取反 反码反码332.2.1 定点数的表示定点数的表示n例题:已知例题:已知 y补补 求求 y补补n解:解: y补补 = 0. y1 y2 ynn y = 0. y1 y2 yn 所以所以 - y = - 0. y1 y2 yn y补补 = 1.y1 y2 yn + 2-n

26、n y补补 = 1. y1 y2 yn 所以所以 y原原 = 1.y1 y2 yn + 2-ny = (0.y1 y2 yn + 2-n) 所以所以 y = 0. y1 y2 yn + 2-n y补补 = 0. y1 y2 yn + 2-nny补补连同符号位在内,每位取反,末位加连同符号位在内,每位取反,末位加 1即得即得- y补补342.2.1 定点数的表示定点数的表示n6 6、移码表示、移码表示n补码表示很难直接判断其真值大小补码表示很难直接判断其真值大小如如十进制十进制x = +21x = 21x = +31x = 31x + 25+10101 + 100000+11111 + 1000

27、0010101 + 10000011111 + 100000大大大大错错错错大大大大正确正确正确正确0,101011,010110,111111,00001+10101 10101+11111 11111= 110101= 001011= 111111= 000001二进制二进制补码补码352.2.1 定点数的表示定点数的表示n(1) (1) 移码定义移码定义 移码在数轴上的表示移码在数轴上的表示x移移 = 2n + x(2nx 2n)x 为真值,为真值,n 为为 整数的位数整数的位数x移码移码2n+112n2n 12n00真值真值如如x = 10100 x移移 = 25 + 10100= 1

28、,10100用用 逗号逗号 将符号位将符号位和数值位隔开和数值位隔开x = 10100 x移移 = 25 10100 = 0,0110036练习题练习题n1、一个、一个C语言程序在一台语言程序在一台32位机器上运行。程序中定义位机器上运行。程序中定义了三个变量了三个变量xyz,其中,其中x和和z是是int型,型,y为为short型。当型。当x=127,y=-9时,执行赋值语句时,执行赋值语句z=x+y后,后,xyz的值分别是的值分别是 n AX=0000007FH,y=FFF9H,z=00000076H n BX=0000007FH,y=FFF9H,z=FFFF0076H n CX=00000

29、07FH,y=FFF7H,z=FFFF0076H n DX=0000007FH,y=FFF7H,z=00000076H37练习题练习题n2、假定有、假定有4个整数用个整数用8位补码分别表示位补码分别表示r1=FEH,r2=F2H,r3=90H,r4=F8H,若将运算结果存放在一个,若将运算结果存放在一个8位寄存位寄存器中,则下列运算会发生溢出的是器中,则下列运算会发生溢出的是( )n A. r1 x r2 B. r2 x r3n C. r1 x r4 D. r2 x r438练习题练习题339练习题练习题n 40练习题练习题n(1)R1的内容为的内容为134,转换为二进制,转换为二进制1000

30、0110B,十六进制为十六进制为86H; R5的值为的值为x-y=-112,-01110000B,补码表示,补码表示10010000B=90H; R6的值为的值为x+y=380, 101111100B,7CH,溢,溢出。出。n(2)m的内容为原的内容为原x的值,的值,1000 0110B,为补码表示,所以原,为补码表示,所以原码为码为1111 1010B,即,即-122。 n的内容二进制的内容二进制1111 0110B,原码为原码为1000 1010B,即,即-10。所以。所以K1的内容为的内容为 -112。412.2.2 定点数的运算定点数的运算1、定点数的移位运算、定点数的移位运算n移位的

31、意义移位的意义 15 米米 = 1500 厘米厘米 小数点右移小数点右移 2 位位 机器中机器中 15 相对于小数点相对于小数点 左移左移 2 位位 左移:左移: 绝对值扩大绝对值扩大 右移:右移: 绝对值缩小绝对值缩小 在计算机中,移位与加减配合,能够实现乘除运算在计算机中,移位与加减配合,能够实现乘除运算422.2.2 定点数的运算定点数的运算n算术移位规则算术移位规则n 对有符号数的移位运算成为对有符号数的移位运算成为算术移位算术移位。n不论是正数还是负数,移位后其符号位均不变,这是算术不论是正数还是负数,移位后其符号位均不变,这是算术移位的重要特点。移位的重要特点。1右移右移 添添 1

32、左移左移 添添 00反反 码码补补 码码原原 码码负数负数0原码、补码、反码原码、补码、反码正数正数添补代码添补代码码码 制制432.2.2 定点数的运算定点数的运算(1)机器数为正时,不论左移或右移,添补代码均为)机器数为正时,不论左移或右移,添补代码均为0。(2)由于负数的原码其数值部分与真值相同,故在移位时只要使)由于负数的原码其数值部分与真值相同,故在移位时只要使符号位不变,其空位均添符号位不变,其空位均添0。(3)由于负数的反码其各位除符号位外与负数的原码正好相反,)由于负数的反码其各位除符号位外与负数的原码正好相反,故移位后所添的代码应与原码相反,即全部添故移位后所添的代码应与原码

33、相反,即全部添1。 (4)分析任意负数的补码可发现,当对其由低位向高位找到第一)分析任意负数的补码可发现,当对其由低位向高位找到第一个个“1”时,在此时,在此“1”左边的各位均与对应的反码相同,而在此左边的各位均与对应的反码相同,而在此“1”右边的各位(包括此右边的各位(包括此“1”在内)均与对应的原码相同,即在内)均与对应的原码相同,即添添0;右移时空位出现在高位,则添补的代码应与反码相同,;右移时空位出现在高位,则添补的代码应与反码相同,即添即添1。 442.2.2 定点数的运算定点数的运算n算术移位的特点:算术移位的特点:n对于正数,三种机器数算术移位后符号位均不变,左移最高位丢对于正数

34、,三种机器数算术移位后符号位均不变,左移最高位丢1,结果错误;右移最低位丢结果错误;右移最低位丢1,影响精度。,影响精度。n对于负数,三种机器数算术移位后符号位不变。对于负数,三种机器数算术移位后符号位不变。n 原码左移,高位丢原码左移,高位丢1,结果出错;原码右移低位丢,结果出错;原码右移低位丢1,影响精度。,影响精度。n 补码左移,高位丢补码左移,高位丢0,结果出错;补码右移低位丢,结果出错;补码右移低位丢1,影响精度。,影响精度。n 反码左移,高位丢反码左移,高位丢0,结果出错;反码右移低位丢,结果出错;反码右移低位丢0,影响精度。,影响精度。452.2.2 定点数的运算定点数的运算n算

35、术移位的硬件实现算术移位的硬件实现(a a)真值为正)真值为正 (b b)负数的原码)负数的原码 (c c)负数的补码)负数的补码 (d d)负数的反码)负数的反码000100丢丢 1 1丢丢 1 1出错出错影响精度影响精度出错出错影响精度影响精度正确正确影响精度影响精度正确正确正确正确462.2.2 定点数的运算定点数的运算n逻辑移位逻辑移位n对无符号数的移位运算成为对无符号数的移位运算成为逻辑移位逻辑移位。n逻辑移位的规则逻辑移位的规则: :n 逻辑左移,高位丢失,低位补逻辑左移,高位丢失,低位补0 0n 逻辑右移,低位丢失,高位补逻辑右移,低位丢失,高位补0 0472.2.2 定点数的运

36、算定点数的运算n2 2、原码定点数的加、原码定点数的加/ /减运算减运算 两个原码表示的数相加,首先要判断符号位:两个原码表示的数相加,首先要判断符号位: 如果符号位相同,就把两个数的绝对值相加,结果符号不如果符号位相同,就把两个数的绝对值相加,结果符号不变;变; 如果符号位不相同,则做减法,将绝对值大的减去绝对值如果符号位不相同,则做减法,将绝对值大的减去绝对值小的,结果的符号与绝对值大的数的符号相同。小的,结果的符号与绝对值大的数的符号相同。 两个原码表示的数相减,首先将减数的符号取反,在按两个原码表示的数相减,首先将减数的符号取反,在按加法进行运算。加法进行运算。482.2.2 定点数的

37、运算定点数的运算n3、补码定点数的加、补码定点数的加/减运算减运算n(1)补码加法)补码加法 n补码加法的特点:补码加法的特点:符号位作为数的一部分参加运算,符号位的进位丢掉。符号位作为数的一部分参加运算,符号位的进位丢掉。运算结果为补码形式运算结果为补码形式n整数整数 A补补 + B补补= A+B补补 (mod 2n+1)n小数小数 A补补 + B补补= A+B补补 (mod 2)n n证明:任意两个数的补码之和,等于该两个数的和的补证明:任意两个数的补码之和,等于该两个数的和的补码码n 分四种情况:分四种情况:(|x|1,|y|1,|x+y|0或或0时时,2 () 2,进位进位2必丢失必丢

38、失,又因又因()0,故故补补补补补补当当0时时,2 () 2,又因又因()0,故故补补补补2()补补所以上式成立所以上式成立502.2.2 定点数的运算定点数的运算(3)0,则则0或或 0 这种情况和第这种情况和第2种情况一样种情况一样,把把和和的位置对调即得证。的位置对调即得证。 (4)0,0,则则0 相加两数都是负数相加两数都是负数,则其和也一定是负数。则其和也一定是负数。补补2,补补2补补补补222(2)上式右边分为上式右边分为“2”和和(2)两部分两部分.既然既然()是负数是负数,而其绝而其绝对值又小于对值又小于1,那么那么(2)就一定是小于就一定是小于2而大于而大于1的数的数,进位进

39、位“2”必丢失必丢失.又因又因()0, 所以所以补补补补2()补补512.2.2 定点数的运算定点数的运算n例如:例如:x=0.1001,y=0.0101,求,求x+y=?n X补补=0.1001 Y补补=0.0101n X补补 0.1001n + Y补补 0.0101 所以,所以,x+y=0.1110X+Y补补 0.1110522.2.2 定点数的运算定点数的运算n例:设例:设 A = 9,B = 5,求,求 A+B补补n解:解:A补补= 1 , 0 1 1 1 B补补= 1 , 1 0 1 1n 1 , 0 1 1 1n +1 , 1 0 1 1 A补补 + B补补= 1,0 0 1 0n

40、 1 1 , 0 0 1 0 A + B = 1110532.2.2 定点数的运算定点数的运算n(2) 补码减法补码减法n因为因为 AB= A+(B ),所以有补码减法:,所以有补码减法:n整数整数 A B补补= A+(B )补补= A补补 + B补补 (mod 2n+1)n小数小数 A B补补= A+(B )补补= A补补 + B补补 (mod 2) 连同符号位一起相加,符号位产生的进位自然丢掉连同符号位一起相加,符号位产生的进位自然丢掉542.2.2 定点数的运算定点数的运算n证明:证明:(|x|1,|y|1,|x+y|x0 x补补= 4+x 0 x -2 Sf1 SF2 0 0正确(正数

41、)正确(正数)0 1上溢上溢1 0下溢下溢1 1正确(负数)正确(负数) Sf1 表示正确的符号,逻辑表达式为表示正确的符号,逻辑表达式为V=Sf1 Sf2,可以用异或门来实可以用异或门来实现现592.2.2 定点数的运算定点数的运算n例如:例如:X=+0.1100 Y=+0.1000,求,求X+Yn X补补 00.1100n + Y补补 00.1000n n X+Y补补 01.0100 n n 结果符号位出现结果符号位出现01,表示已溢出,即结果大于,表示已溢出,即结果大于1。602.2.2 定点数的运算定点数的运算单符号位法单符号位法nCf C000正确(正数)正确(正数)01上溢上溢10下溢下溢11正确(负数)正确(负数)nV=Cf C0 其中其中Cf为符号位产生的进位为符号位产生的进位,C0为最高有效位为最高有效位产生的进位产生的进位612.2.2 定点数的运算定点数的运算n补码加减法的硬件配置补码加减法的硬件配置V0 A

温馨提示

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

评论

0/150

提交评论