04-计算机的运算方法(第五次课)_第1页
04-计算机的运算方法(第五次课)_第2页
04-计算机的运算方法(第五次课)_第3页
04-计算机的运算方法(第五次课)_第4页
04-计算机的运算方法(第五次课)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、4、定点除法运算、定点除法运算 4.1、原码一位除法、原码一位除法 4.2、补码一位除法、补码一位除法 4.3、阵列除法器、阵列除法器 5、浮点四则运算、浮点四则运算 5.1、浮点加减运算、浮点加减运算 对阶、执行加减、规格化、舍入、判溢出对阶、执行加减、规格化、舍入、判溢出 5.2、浮点乘除运算、浮点乘除运算 阶码加减、尾数乘除、规格化、舍入、判溢出阶码加减、尾数乘除、规格化、舍入、判溢出 第六章第六章 计算机的运算方法计算机的运算方法 浮点数的表示形式浮点数的表示形式(以以2为底为底): X = S 2 j 2 基数基数 S 尾数尾数,定点小数,用,定点小数,用补码补码表示,决定表示,决定

2、数的有效精度数的有效精度。 j 阶码阶码, 定点整数,用定点整数,用补码补码或或移码移码表示,决定表示,决定数的表示范围数的表示范围。 浮点数:表示范围与精度浮点数:表示范围与精度 在机器字长一定的情况下,阶码位数越多,尾数位数就越少。在机器字长一定的情况下,阶码位数越多,尾数位数就越少。 阶码阶码j 越大:越大:数的数的表示范围越大表示范围越大,数的表示精度越小。,数的表示精度越小。 尾数尾数S 越大:越大:数的数的表示精度越大表示精度越大,数的表示范围越小。,数的表示范围越小。 上溢上溢 阶码阶码j 最大阶码最大阶码 下溢下溢 阶码阶码j -X移移 原码、补码、反码都不具备。原码、补码、反

3、码都不具备。 2) 如果:如果:X Y 则则 X移 移 Y移移 所以,在浮点运算中,可以方便地通过比较移码的大小来实现阶码所以,在浮点运算中,可以方便地通过比较移码的大小来实现阶码 真值大小的比较,其他三种码都不具备这一特性。真值大小的比较,其他三种码都不具备这一特性。 Review: 移码移码通过补码符号位取反求得:通过补码符号位取反求得:1表示正号表示正号,0表示负号表示负号。 数据数据0有有唯一唯一的编码,即的编码,即+0移移=-0移移=10000。 移码运算特点:移码运算特点: 1) 最高位符号位,最高位符号位,1表示正号表示正号,0表示负号表示负号。 如果是双符号位,最高位保持如果是

4、双符号位,最高位保持0:01正数,正数,00负数负数。 溢出判断:溢出判断:最高位为最高位为1,10上溢,上溢,11下溢。下溢。 2)在计算机中,移码)在计算机中,移码只执行加减法只执行加减法运算,且运算结果运算,且运算结果+2n修正修正; (即(即结果的符号位取反结果的符号位取反)得到得到X移 移。 。 例如:例如:X=+1010 Y=+0011, 则则X移 移=11010 Y移 移=10011 X移 移+ Y移 移=11010+10011 = 01101, 修正:修正:X+Y移 移= 01101+10000 =11101 运算法则:运算法则: X + Y移 移 = X移 移+ Y补 补 X

5、 - Y移 移 = X移 移+ -Y补 补 5、浮点四则运算、浮点四则运算 X+Y移 移= X移 移+ Y补 补 = 11010 + 00011 = 11101 4、定点除法运算、定点除法运算 4.1、原码一位除法、原码一位除法 4.2、补码一位除法、补码一位除法 4.3、阵列除法器、阵列除法器 5、浮点四则运算、浮点四则运算 5.1、浮点加减运算、浮点加减运算 对阶、执行加减、规格化、舍入、判溢出对阶、执行加减、规格化、舍入、判溢出 5.2、浮点乘除运算、浮点乘除运算 阶码加减、尾数乘除、规格化、舍入、判溢出阶码加减、尾数乘除、规格化、舍入、判溢出 第六章第六章 计算机的运算方法计算机的运算

6、方法 X=104 = 0110 1000 = 0.110 1000 * 27 = 0 0111;0.1101000 Y=40 = 0010 1000 = 0.101 0000 * 26 = 0 0110;0.1010000 5.1、浮点加减运算、浮点加减运算 思考思考1:X和和Y尾数可以直接相加或相减吗?尾数可以直接相加或相减吗? 思考思考2:对齐阶码后,尾数才能进行加减运算。对齐阶码后,尾数才能进行加减运算。 阶码大的向小的看齐?还是小的向大的看齐?阶码大的向小的看齐?还是小的向大的看齐? 思考思考3:对齐阶码是不是等于小数点对齐了?对齐阶码是不是等于小数点对齐了? 思考思考4:对齐阶码后,

7、尾数应该做什么相应的改变?对齐阶码后,尾数应该做什么相应的改变? Y=40 = 0010 1000 = 0.0101 0000 * 27 = 0 0111;0.01010000 设有两浮点数设有两浮点数X,Y,其中:,其中:X = SX * 2 jX Y = SY * 2 jY XY运算执行以下五步:运算执行以下五步: 1) “对大阶对大阶”(小阶向大阶看齐)(小阶向大阶看齐) 对大阶对大阶:使两数的阶码值相等。:使两数的阶码值相等。 求阶码差求阶码差j,j0时,小阶码的尾数时,小阶码的尾数右移右移j位:阶码位:阶码 +j, 2) 尾数运算(加尾数运算(加/减)减) 两尾数进行加两尾数进行加/

8、减运算。减运算。 3) 规格化处理规格化处理 尾数符号尾数符号 01 或或 10:尾数溢出:尾数溢出。定点运算不允许,浮点运算可以。定点运算不允许,浮点运算可以。 右规:右规:尾数右移尾数右移1位,阶码位,阶码+1 尾数符号尾数符号 00 或或 11:尾数不溢出:尾数不溢出。 但如但如最高数值位最高数值位与与符号位符号位相同相同: 00 0 或或 11 1 左规:左规:尾数尾数数值连续左移数值连续左移直到直到最高数值位与符号位最高数值位与符号位不同不同为止为止 (00 1,11 0) 同时从阶码中减去移位数。同时从阶码中减去移位数。 5.1、浮点加减运算、浮点加减运算 4) 舍入(处理多余位)

9、舍入(处理多余位) 在执行在执行右规右规或或对阶对阶时,尾数低位上的数值会移掉,使数值的精度时,尾数低位上的数值会移掉,使数值的精度 受到影响,常用受到影响,常用“0”舍舍“1”入入法。法。 (三种舍去法:恒舍去,末位恒置(三种舍去法:恒舍去,末位恒置 1,0舍舍1入;入; 一般取其精度受影响最小的方法:一般取其精度受影响最小的方法: 0舍舍1入入) 5) 检查阶码是否溢出检查阶码是否溢出 在规格化和舍入时都可能发生溢出,在规格化和舍入时都可能发生溢出, 若若阶码符号阶码符号10 为下溢为下溢,置,置运算结果为零运算结果为零, 若若阶码符号阶码符号01 为上溢为上溢,置,置溢出标志溢出标志。

10、5.1、浮点加减运算、浮点加减运算 X = 0111 00.1101000 jX SX Y = 0110 00.1010000 jY SY SY jY + 1 SX jX + 1 SX jX + 1 No No Yes jX = jY ? SX +- SY SX jX (or jY) jX Xf1 Xf2 = 1 Xf1Xf2 X1+ Xf1Xf2 X1 = 1 ? SX jX - 1 输出输出 Yes Yes No 3)规格化处理)规格化处理 00.1101000 SX + 00.0101000 SY 01.0010000 右规:右规:0111 00.10010000 左规左规 右规右规 2

11、)尾数运算)尾数运算 1)阶码对齐)阶码对齐 4)舍入处理)舍入处理 5)溢出判断)溢出判断 jX jY ? No Yes 例例: 已知已知 X = 0.11011011 * 2010, Y = - 0.10101100 * 2100 求求 X + Y 解解: 对大阶:对大阶:jX补 补 = 00 0010 jY补 补 = 00 0100 - jY补 补 = 11 1100 求阶差求阶差j=jX补 补+ - jY补 补 = 00 0010 + 11 1100 = 11 1110 ( (-2) X 的阶码小:的阶码小:X阶码阶码 + 2 ( jX补 补 = jY补 补 = 00 0100 ) )

12、 X的尾数右移的尾数右移2位,前面补符号位位,前面补符号位 SX补 补= 00 0011011011(此时保留右移数据,不丢不舍) (此时保留右移数据,不丢不舍) 尾数相加尾数相加SX补 补 = SX补 补 + SY补 补 = 00 0011011011 + 11 01010100 = 11 10001010 11 规格化操作:规格化操作:左规左规: 数值位左移数值位左移1位位 = 11 000101011 阶码阶码 - 1(jX补 补= 00 0011) ) 舍入舍入 舍去的附加位最高位为舍去的附加位最高位为1,结果最低位,结果最低位+1: Sx补 补=11 00010110 S= - 0.

13、11101010 判溢出判溢出 阶码符号为阶码符号为00,不溢出。,不溢出。 最终结果为:最终结果为:X+Y = - 0.11101010 * 2011 实际运算时,先确定位数实际运算时,先确定位数。假设机器字长。假设机器字长16位,采用浮点表示数,位,采用浮点表示数, 其中阶符其中阶符2位,阶码位,阶码4位,尾符位,尾符2位,尾数位,尾数8位,位,都用补码都用补码表示。表示。 4、定点除法运算、定点除法运算 4.1、原码一位除法、原码一位除法 4.2、补码一位除法、补码一位除法 4.3、阵列除法器、阵列除法器 5、浮点四则运算、浮点四则运算 5.1、浮点加减运算、浮点加减运算 对阶、执行加减

14、、规格化、舍入、判溢出对阶、执行加减、规格化、舍入、判溢出 5.2、浮点乘除运算、浮点乘除运算 阶码加减、尾数乘除、规格化、舍入、判溢出阶码加减、尾数乘除、规格化、舍入、判溢出 第六章第六章 计算机的运算方法计算机的运算方法 X = SX 2 jX Y = SY 2 jY X * Y = ( SX * SY ) 2 jX + jY X / Y = ( SX / SY ) 2 jX - jY 5.2、浮点乘除运算、浮点乘除运算 1)阶码加减:)阶码加减: 乘法:乘法:jX + jY ,除法:,除法: jX - jY 2)尾数乘除:)尾数乘除: 乘法:乘法: SX * SY ,除法:,除法: SX

15、 / SY 3)规格化处理;)规格化处理; 4)舍入操作:)舍入操作: 有可能带来又一次规格化。有可能带来又一次规格化。 5)判溢出:)判溢出:检查阶码上下溢出。检查阶码上下溢出。 例如:例如:求求X*Y, X = 0.0110011 * 2 -5 Y = - 0.1110010 * 2 3 阶码(含符号位)用阶码(含符号位)用4位移码表示,采用单符号位。位移码表示,采用单符号位。 尾数(含符号位)用尾数(含符号位)用8位补码表示,采用单符号位。位补码表示,采用单符号位。 jX补 补= 1 011 jX移移= 0 011 jY补 补= 0 011 jY移移= 1 011 SX补 补= 0.01

16、10011 -SX补补=1.1001101 SY补补=1.0001110 X浮 浮 = 0 011, , 0.0110011 Y浮 浮 = 1 011, , 1.0001110 5.2、浮点乘除运算、浮点乘除运算 1)阶码相加:)阶码相加: jX + jY 移 移 = jX 移移 + jY 补补 = 0 011 + 0 011 = 0 110 2)尾数相乘:)尾数相乘: SX补 补 * SY补补= 0.0110011 * 1.0001110 = 1.10100101001010 XY浮 浮 = 0 110, 1.10100101001010 3)规格化处理)规格化处理: 符号位与最高数值位相同

17、,需要规格化(尾数左移一位,阶码符号位与最高数值位相同,需要规格化(尾数左移一位,阶码-1) XY浮 浮 = 0.101, 1.01001010010100 4)舍入操作:)舍入操作: 尾数设尾数设8位,位,0舍舍1入,则入,则 XY浮 浮 = 0 101, 1.0100101 5)判溢出:)判溢出: 阶码两符号位相同,不溢出。阶码两符号位相同,不溢出。 5.2、浮点乘除运算、浮点乘除运算 浮点运算器浮点运算器 浮点运算器浮点运算器 由由阶码阶码定点定点运算器运算器和和尾数尾数定点定点运算器运算器组成。组成。 阶码阶码部分仅执行部分仅执行加减法加减法运算。运算。 尾数尾数部分则执行部分则执行加

18、减乘除加减乘除运算,左规时有时需要左移多位。运算,左规时有时需要左移多位。 复习与作业复习与作业 复习章节:复习章节: 第第6章章 计算机的运算方法计算机的运算方法 6.1 无符号数和有符号数无符号数和有符号数 6.2 数的定点表示和浮点表示数的定点表示和浮点表示 6.5 算术逻辑单元算术逻辑单元 作业:作业: P 290 1、2、3、4、5、6、7、8、9、10、11、16 6-18、试试比较比较逻辑移位和算术移位。逻辑移位和算术移位。 解:解:逻辑移位和算术移位的逻辑移位和算术移位的区别区别: 逻辑移位逻辑移位是对是对逻辑数或无符号数逻辑数或无符号数进行的移位,进行的移位, 其特点是不论左

19、移还是右移,其特点是不论左移还是右移,空出位均补空出位均补0,不考虑符号位。,不考虑符号位。 算术移位算术移位是对是对带符号数带符号数进行的移位操作,进行的移位操作, 其关键规则是移位时其关键规则是移位时符号位保持不变符号位保持不变, 空出位的补入值与数的正负移位方向、采用的码制等有关。空出位的补入值与数的正负移位方向、采用的码制等有关。 补码、反码右移时具有补码、反码右移时具有符号延伸特性符号延伸特性。 左移时可能左移时可能产生溢出产生溢出错误,右移时可能错误,右移时可能丢失精度丢失精度。 原码运算中的移位为逻辑移位,右移时补零,不补符号位。原码运算中的移位为逻辑移位,右移时补零,不补符号位

20、。 补码运算中的移位为算术移位,右移时前补符号位。补码运算中的移位为算术移位,右移时前补符号位。 1 右移右移 添添 1 左移左移 添添 0 0 反反 码码 补补 码码 原原 码码 负数负数 0原码、补码、反码原码、补码、反码正数正数 添补代码添补代码码码 制制 算术移位规则:算术移位规则:符号位不变符号位不变 P235-236 6-12、设浮点数格式为:设浮点数格式为:阶符阶符1位、阶码位、阶码4位、数符位、数符1位、尾数位、尾数10位。位。 写出写出51/128、27/1024、7.375、-86.5所对应的机器数。要求所对应的机器数。要求 (1)阶码和尾数均为原码;)阶码和尾数均为原码; (2)阶码和尾数均为补码;)阶码和尾数均为补码; (3)阶码为移码,尾数为补码。)阶码为移码,尾数为补码。 解:解:据题意画出该浮点数的格式:据题意画出该浮点数的格式: 1 4 1 10 将十进制数转换为二进制:将十进制数转换为二进制: x1 = 51/128 =(0.011 001 1)2 = 2-1 (0.110 011)2 x2 = -27/1024=(- 0.000 001 101 1)2 = 2-5 (-0.110 11)2 x3 = 7.375 =(111.011)2 = 23 (0.111 011)2 x4 = -86.5=(-1 010 110.1)2

温馨提示

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

最新文档

评论

0/150

提交评论