第3章 运算方法和运算部件_第1页
第3章 运算方法和运算部件_第2页
第3章 运算方法和运算部件_第3页
第3章 运算方法和运算部件_第4页
第3章 运算方法和运算部件_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、 X 0X1 1 1X1 1X 1 1X0X 0XX 0X2 2n n2 2n nX X2 2n nX, X, 2 2n nX0X0X 0XX 0X1 12 2X X2 2X X 1 1X0X0X补X原X反X真值符号位+/ -变成0/1数值位不变符号位不变,数值位不变(XS=0) 变反,末位+1(XS=1)符号位不变, 数值位不变(XS=0) 数值位变反(XS=1)图图3-1 三种机器数及真值间的转换关系三种机器数及真值间的转换关系(1)比较比较 对正数而言对正数而言, 上述三种码都等上述三种码都等于真值本身。于真值本身。最高位都表示符号位最高位都表示符号位,补码和反补码和反码的符号位可码的符

2、号位可与与数值位一数值位一样样看待看待,和数值位一起参加运算;但原码和数值位一起参加运算;但原码的符号位必须的符号位必须与数值位与数值位分开处理。分开处理。 原码和反码的真值原码和反码的真值0各有两种各有两种不同的表示方式不同的表示方式,而补码的真值而补码的真值0表示是唯一的表示是唯一的。(2)转换转换三种机器数及真值的转换关系如上图所示。从图中可见三种机器数及真值的转换关系如上图所示。从图中可见, 真值真值X与补与补码或反码间的转换是通过原码实现的码或反码间的转换是通过原码实现的, 当然当然, 对于已熟练掌握转换方对于已熟练掌握转换方法的读者也可直接完成真值法的读者也可直接完成真值X与补码或

3、反码间的转换。与补码或反码间的转换。 符号数值部分符号数值部分纯小数表示法小数点整数表示法小数点图图3-3 3-3 定点数表示法定点数表示法msEm尾符 阶码部分尾数数值位尾数部分,用原码表示图3-4 IEEE 754标准的浮点格式n基本思想基本思想:每次用乘数的一位去乘被乘数。每次用乘数的一位去乘被乘数。n 1.算法分析算法分析例例. 0.11011.10111.1011乘积乘积 P = X P = X Y Y符号符号 S SP P= S= SX X S SY YX原原Y原原(1 1)手算)手算 0.11010.1101 0.10110.1011 1101 1101 1101 1101 00

4、00 0000 1101 1101 0.100011110.10001111上符号:上符号:1.100011111.10001111部分积部分积问题:问题:1 1)加数多(由乘数位数决定)。)加数多(由乘数位数决定)。 2 2)加数的位数多(与被乘数、乘)加数的位数多(与被乘数、乘 数位数有关)。数位数有关)。改进:将一次相加改为分步累加。改进:将一次相加改为分步累加。(2 2)分步乘法)分步乘法每次将一位乘数所对应的部分积与每次将一位乘数所对应的部分积与原部分积的累加和相加,并移位。原部分积的累加和相加,并移位。设置寄存器:设置寄存器: A A:存放:存放部分积累加和部分积累加和、乘积高位乘

5、积高位 B B:存放:存放被乘数被乘数 C C:存放:存放乘数乘数、乘积低位乘积低位 设置初值:设置初值: A = 00.0000A = 00.0000 B = X = 00.1101 B = X = 00.1101 C = Y = .1011 C = Y = .1011 步数步数 条件条件 操作操作 A C A C 00.0000 .10100.0000 .1011 1 1 1)C Cn n=1=1+B+BC Cn n+ 00.1101+ 00.110100.00.1101110100.00.011001101 1.10.101 12 2)C Cn n=1=1+B+B+ 00.1101+ 0

6、0.11010 01 1. .0011001100.00.100110011111.1.10 03 3)C Cn n=0=0+0+0+ 00.0000+ 00.000000.00.1001100100.00.01000100111111. .1 14 4)C Cn n=1=1+B+B+ 00.1101+ 00.11010 01 1. .0001000100.00.1000100011111111X X原原Y Y原原 = 0.10001111= 0.10001111 3.3.运算规则运算规则(1 1)操作数、结果用原码表示;)操作数、结果用原码表示;(2 2)绝对值运算,符号单独处理;)绝对值运

7、算,符号单独处理;(3 3)被乘数)被乘数(B)(B)、累加和、累加和(A)(A)取双符号位取双符号位, ,乘数只取乘数只取尾数尾数;(4 4)乘数末位)乘数末位( (CnCn) )为判断位,其状态决定为判断位,其状态决定 下步操作;下步操作;(5 5)作)作n n(乘数有效位数)(乘数有效位数)次循环次循环(累加、右移)累加、右移)n1.算法分析算法分析n X补补 = X0.X1X2Xn(1)Y为正:为正:Y补补 = 0.Y1Y2Yn (XY)补补 = X补补(0.Y1Y2Yn)(2)Y为负:为负:Y补补 = 1.Y1Y2Yn (XY)补补 = X补补(0.Y1Y2Yn)X补补(3)Y符号任

8、意:符号任意: (XY)补补 = X补补(0.Y1Y2Yn)-X补补Y0符号位符号位比较法比较法算法算法n比较法:用乘数的相邻两位比较结果决定比较法:用乘数的相邻两位比较结果决定 +X补、补、-X补或补或+0。(XY)补补 比较法比较法算法算法Y Yn n Y Yn+1 n+1 Y Yn+1n+1-Y-Yn n 操作操作(A(A补补为部分积累加和为部分积累加和) ) 0 00 00 10 11 01 01 1 1 1 1/2A1/2A补补 1/2(A1/2(A补补+X+X补补) ) 1/2(A 1/2(A补补-X-X补补) ) 1/2A 1/2A补补0 01 1-1-10 03.3.运算实例运

9、算实例X=-0.1101,Y=-0.1011,X=-0.1101,Y=-0.1011,求求(XY)(XY)补补。初值:初值:A=00.0000,B=XA=00.0000,B=X补补=11.0011,=11.0011, -B=(-X) -B=(-X)补补=00=00.1101,C =Y.1101,C =Y补补=1=1.0101.0101步数步数 条件条件 操作操作 A C A C 00.0000 1.01000.0000 1.0101 1 1 1)1 01 0-B-BC Cn n+ 00.1101+ 00.110100.00.1101110100.00.011001101 11.011.0101

10、012 2)0 10 1+B+B+ 11.0011+ 11.001111.11.1001100111.11.1100110011111.01.010103 3)1 01 0-B-B+ 00.1101+ 00.110100.00.1001100100.00.010001001111111.1.01014 4)0 10 1+B+B+ 11.0011+ 11.001111.11.0111011111.11.10111011111111111.01.00 0 C Cn+1n+1C Cn nC Cn+1n+15 5)1 01 0-B-B+ 00.1101+ 00.1101(XY)(XY)补补 = 0.1

11、0001111= 0.100011115 5)1 01 0-B-B+ 00.1101+ 00.110100.00.1000100011111111修正修正(1)A(1)A、B B取双符号位,符号参加运算;取双符号位,符号参加运算;(2)C(2)C取单符号位,符号参加移位,以决定最后是否取单符号位,符号参加移位,以决定最后是否 修正;修正;(3)C(3)C末位设置附加位末位设置附加位C Cn+n+1 1,初值为,初值为0 0,C Cn nC Cn+n+1 1组成判组成判 断位,决定运算操作断位,决定运算操作;(4)(4)做做n+1n+1步步操作操作, ,其中其中n n步步循环循环, ,最后一最后

12、一步不移位步不移位。 4.4.运算规则运算规则 3.4 二进制除法运算二进制除法运算除法除法 加减和移位操作。加减和移位操作。例例. . 手工计算手工计算 0.101100.101100.111110.111110.101100.10110 110111010.0.0 01 1 11111111110.111110.111110 00 00 01 1 1111111111 10101101010 01 1 1111111111 101110110 00 0.0000000000.0.0.商:商: 0.101100.10110余数:余数:0.101100.101102 2 5实现除法的关键:实现

13、除法的关键:比较余数和除数的比较余数和除数的绝对值大小,以绝对值大小,以决定上商。决定上商。原码恢复余数法原码恢复余数法1.1.算法算法 比较余数和除数的大小可用减法试探。比较余数和除数的大小可用减法试探。余数余数2 - 2 - 除数除数= =新余数新余数为正为正: :够减够减, ,商商1 1。为负为负: :不够减不够减, ,商商0,0,恢复原余数。恢复原余数。新余数新余数2.2.实例实例已知已知 X=-0.10110X=-0.10110,Y=0.11111Y=0.11111,求求X/YX/Y,给出商,给出商Q Q和余数和余数R R设置寄存器:设置寄存器: A A:被除数、余数,:被除数、余数

14、,B B:除数,:除数,C C:商:商A= X = 00.10110A= X = 00.10110 -B = 11.00001 -B = 11.00001B= Y = 00.11111 B= Y = 00.11111 C= Q = 0.00000C= Q = 0.00000寄存器初值:寄存器初值:步数步数 条件条件 操作操作 A C A C 00.10110 0.0000000.10110 0.00000 1 1)正正-B-B 01.0110001.01100+11.00001+11.0000100.0110100.011010.00000.00002 2)负负-B-B00.1101000.1

15、1010+11.00001+11.0000111.1101111.110110.0000.0001 13 3)恢复余数恢复余数+B+B+00.11111+00.1111100.1101000.1101001.1010001.101000.000.0010104 4)正正-B-B +11.00001+11.0000100.1010100.10101C Cn nr rQ Q1 1 Q Q2 2 Q Q3 3 r r0 02r2r0 0r r1 12r2r1 1r r22r r2 22r2r2 2r r3 3101步数步数 条件条件 操作操作 A C A C 00.10101 0.0000.1010

16、1 0.00101101 5 5)正正-B-B 01.0101001.01010+11.00001+11.0000100.0101100.010110.00.010101 16 6)负负 -B-B00.1011000.10110+11.00001+11.0000111.1011111.101110.0.101110117 7)恢复余数恢复余数+B+B+00.11111+00.1111100.1011000.10110Q= -0.10110Q= -0.10110C Cn nQ Q4 4 Q Q5 5 Q Q3 3 r r3 32r2r3 3r r4 42r2r4 4r r55r r5 5R= 0

17、.10110R= 0.101102 2-5-5X/Y=-0.10110+X/Y=-0.10110+-0.10110-0.101102 2-5-5 0.11111 0.11111103.3.说明说明(1)A(1)A和和B B取双符号位,分别装取双符号位,分别装X X和和Y Y的绝对值。的绝对值。(2)(2)最后一步余数乘以最后一步余数乘以2-n为结果的余数,其为结果的余数,其符号与被除数同号。符号与被除数同号。3.2.3.2 原码不恢复余数法原码不恢复余数法(加减交替法)(加减交替法)1.1.算法分析算法分析第二步第二步: :2 2r r1 1-B=-B=r r2 200第三步第三步: :r r

18、2 2+B=+B=r r2(2(恢复余数恢复余数) )第四步第四步: :2 2r r2 2-B=-B=r r3 32 2r r2 2-B=2(-B=2(r r2 2+B)-B+B)-B =2 =2r r2 2+B=+B=r r3 3 第二步第二步: :2 2r r1 1-B=-B=r r2 200第三步第三步:2:2r r2 2+B=+B=r r3 3 ( (不恢复余数不恢复余数) )2.2.算法算法 r ri+1i+1=2=2r ri i+(1-2Q+(1-2Qi i)Y)Yr ri i为为正,正,则则Q Qi i为为1 1,第第i+1i+1步作步作2 2r ri i-Y-Y;r ri i为

19、为负,负,则则Q Qi i为为0 0,第第i+1i+1步作步作2 2r ri i+Y+Y。3.3.实例实例X=0.10110X=0.10110,Y=0.11111Y=0.11111,求,求X/YX/Y,给出商,给出商Q Q和余数和余数R R。初值:初值:A= X = 00.10110A= X = 00.10110 B= Y = 00.11111 B= Y = 00.11111 C= Q = 0.00000 C= Q = 0.00000 -B=11.00001 -B=11.00001步数步数 条件条件 操作操作 A C A C 00.10110 0.0000000.10110 0.00000 1

20、 1)为正为正-B-B 01.0110001.01100+11.00001+11.0000100.0110100.011010.00000.00002 2)为负为负 -B-B00.1101000.11010+11.00001+11.0000111.1101111.110110.0000.0001 13 3)+B+B+00.11111+00.1111111.1011011.101100.000.001010为正为正00.1010100.10101C Cn n r rQ Q1 1 Q Q2 2 Q Q3 3 r r0 02r2r0 0r r1 12r2r1 1r r2 22r2r2 2r r3 3

21、4 4)为正为正-B-B 01.0101001.01010+11.00001+11.0000100.0101100.010110.00.0101101Q Q4 4 2r2r3 3r r4 41011步数步数 条件条件 操作操作 A C A C 00.01011 0.000.01011 0.010111011 6 6)为负为负 恢复余数恢复余数+B+B+00.11111+00.1111100.1011000.10110Q= 0.10110Q= 0.10110C Cn nQ Q4 4 r r4 45 5)为正为正-B-B 00.1011000.10110+11.00001+11.0000111.1

22、011111.101110.0.10111011Q Q5 5 2r2r4 4r r55r r5 5R= 0.10110R= 0.101102 2-5-5X/Y=0.10110+X/Y=0.10110+ 0.101100.101102 2-5-5 0.11111 0.111110 4.4.运算规则运算规则(1 1)A A、B B取双符号位,取双符号位,X X、Y Y取绝对值运算,要求取绝对值运算,要求|X| |Y| |X| |Y| 。(2 2)根据余数的正负决定商值及下一步操作。)根据余数的正负决定商值及下一步操作。(3 3)求)求n n位商,作位商,作n n步操作;若第步操作;若第n n步余数

23、为负,步余数为负,则增加第则增加第n+1n+1步恢复余数,不移位。步恢复余数,不移位。补码加减交替法补码加减交替法如何上商?如何上商? 如何确定商符?如何确定商符? 如何判断是否够减?如何判断是否够减?已知已知X补补与与Y补补求求X补补/ Y补补在补码除在补码除法中需要解决法中需要解决:1.1.判够减判够减(1)(1)同号相除同号相除4 74 77 47 4-4 -7-4 -7-7 -4-7 -41 1-4 7-4 7-7 4-7 44 -74 -77 -47 -40 01 10 0-4-43 3-7-7-3-3-(-4)-(-4)-3-3-(-7)-(-7)3 3够减够减不够减不够减够减够减

24、不够减不够减够减:够减:r与与X、Y同号;同号;不够减:不够减:r与与X、Y异号。异号。(2)(2)异号相除异号相除 1 10 0 1 1 0 0+(-4)+(-4) 3 3+(-7)+(-7)-3-3 +4+4-3-3 +7+7 3 3够减够减够减够减不够减不够减不够减不够减够减:够减:r与与X同号同号,与与Y异号;异号; 不够减:不够减:r与与X异号异号,与与Y同号。同号。(3 3)判断规则)判断规则同号:作同号:作X X补补-Y-Y补补X X补补Y Y补补够减够减:r r补补与与Y Y补补同号同号不够减不够减:r r补补与与Y Y补补异号异号异号:作异号:作X X补补+Y+Y补补够减够减

25、:r r补补与与Y Y补补异号异号不够减不够减:r r补补与与Y Y补补同号同号2.2.求商值求商值X X补补Y Y补补同号:商为正同号:商为正异号:商为负异号:商为负够减商够减商1 1不够减商不够减商0 0够减商够减商0 0不够减商不够减商1 1( (r r、Y Y同号同号) )( (r r、Y Y异号异号) )( (r r、Y Y异号异号) )( (r r、Y Y同号同号) )够减够减商商1 1不够减商不够减商0 0够减商够减商0 0不够减不够减商商1 1( (r r、Y Y同号同号) )( (r r、Y Y异号异号) )( (r r、Y Y异号异号) )( (r r、Y Y同号同号) )

26、( (r r、Y Y同号同号) )( (r r、Y Y异号异号) )( (r r、Y Y异号异号) )( (r r、Y Y同号同号) )够减够减商商1 1不够减不够减商商0 0够减够减商商0 0不够减不够减商商1 1上商规则:上商规则:Q Qi i=Sr=Sri iS SY Y余数与除数同号商余数与除数同号商1 1,异号商,异号商0 0。3.3.算法算法 ( (r ri+1i+1) )补补=2=2r ri i补补+(1-2Q+(1-2Qi i补补)Y)Y补补r ri i补补与与Y Y补补同号,同号,则则Q Qi i补补为为1 1,第第i+1i+1步作步作2 2r ri i补补-Y-Y补补;r

27、ri i补补与与Y Y补补异号,异号,则则Q Qi i补补为为0 0,第第i+1i+1步作步作2 2r ri i补补+Y+Y补补。4.4.求商符求商符令令X X补补 = = r r0 0补补r r0 0补补与与Y Y补补同号:同号:Q Q0 0补补=1=1异号:异号:Q Q0 0补补=0=0与实际商与实际商符相反符相反商符商符与原码加减交替法比较与原码加减交替法比较真商真商= =假商假商+1.000+1.0000101Q Q0 0.Q.Q1 1Q Q2 2Q Qn-1n-1(1)1)对第对第n n位商位商( (末位商末位商) )采取恒置采取恒置1 1(2 2)将商符变反)将商符变反n位位5.5

28、.商的校正商的校正上述上商操作只作到小数点后第上述上商操作只作到小数点后第n-1位,位,差一位商,并且商的符号与实际相反。差一位商,并且商的符号与实际相反。即即假商假商校正:校正:6.6.实例实例X=0.10110X=0.10110,Y=-0.11111Y=-0.11111,求,求X/YX/Y,给出商,给出商Q Q和余数和余数R R。初值:初值:A =XA =X补补=00.10110=00.10110 B =Y B =Y补补=11.00001 =11.00001 C =QC =Q补补=0.00000=0.00000 -B =00.11111 -B =00.11111步数步数 条件条件 操作操作

29、 A C A C 00.10110 0.000000.10110 0.0000 1 1)异号异号+B+B 01.0110001.01100+11.00001+11.0000100.0110100.01101 0.000.0000002 2)同号同号 +B+B00.1101000.11010+11.00001+11.0000111.1101111.11011 0.00.0001001C Cn n-1-1r r与与Y YQ Q1 1 Q Q2 2 r r0 02r2r0 0r r1 12r2r1 1r r2 2求商符求商符Q Q0 0 异号异号5 5)+B+B+11.00001+11.000010

30、0.1011000.1011011.1011111.10111步数步数 条件条件 操作操作 A C A C 11.11011 0.011.11011 0.0001001 3 3)异号异号-B-B 11.1011011.10110+00.11111+00.1111100.1010100.10101 0.0.001000104 4)异号异号 +B+B01.0101001.01010+11.00001+11.0000100.0101100.01011 0.01000.0100C Cn n-1-1r r与与Y YQ Q3 3 Q Q2 2 r r2 22r2r2 2r r3 32r2r3 3r r4 42r2r4 4r r5 5假商假商=0.0100=0.0100Q Q4 4 真商真商=0.0100+1.00001=1.01001

温馨提示

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

评论

0/150

提交评论