1 / 13

第一单元 运算器及运算方法

第一单元 运算器及运算方法. 五、浮点运算 浮点数的加减法运算 浮点数的乘除法运算. 浮点数的加减法运算. 步骤:对阶-求和差-规格化-舍入 1、对阶:即对齐两数的小数点使两数的阶码相等 对阶原则:小阶向大阶看齐即小阶的尾数每右移一位,阶码+1。 2、求和/差:对阶之后进行尾数运算。(尾数按补码加减运算规则运算) 3、规格化:. 浮点数的加减法运算. 规格化: 当浮点数大于0时,其规格化尾数应为: M=0.1xxx…x -2 n-1 ≤ E ≤ 2 n-1 –1

Download Presentation

第一单元 运算器及运算方法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第一单元 运算器及运算方法 五、浮点运算 浮点数的加减法运算 浮点数的乘除法运算

  2. 浮点数的加减法运算 步骤:对阶-求和差-规格化-舍入 1、对阶:即对齐两数的小数点使两数的阶码相等 对阶原则:小阶向大阶看齐即小阶的尾数每右移一位,阶码+1。 2、求和/差:对阶之后进行尾数运算。(尾数按补码加减运算规则运算) 3、规格化:

  3. 浮点数的加减法运算 规格化: 当浮点数大于0时,其规格化尾数应为:M=0.1xxx…x -2n-1≤ E ≤ 2n-1 –1 当浮点数为0时,其规格化尾数应为: M=0.00…0 E=0 当浮点数小于0时,其规格化尾数应为:M=1.0xxx…x -2n-1≤ E ≤ 2n-1–1 补码尾数求和的结果,可能出现下列6种情况:

  4. 浮点数的加减法运算 [M]补=00.1…… ① [M]补=11.0…… ② [M]补=00.0…… ③ [M]补=11.1…… ④ [M]补=10. …… ⑤ [M]补=01. …… ⑥ 其中① ②符合规格化数的定义,是规格化数 ③ ④需使尾数左移、阶码减1,直至满足规格化要求称为左规 ⑤ ⑥在浮点运算中表明尾数之和绝对值大于1, 将尾数右移实现规格化称为右规

  5. 例: 若两浮点数求和后运算结果为: [A+B]浮=0011 11.1101 非规格化浮点数,应左规,结果为: [A+B]浮=0001 11.0100 若两浮点数求和后运算结果为: [C+D]浮=0101 01.0010 非规格化浮点数,应右规,结果为: [C+D]浮=0110 00.1001

  6. 浮点数的加减法运算 4、舍入操作 ①“0舍1入”法:即移掉的最高位为1时则在尾数末位加1;为0时则舍去移掉的数值。 ②末位恒1法:即右移时,丢掉移出的原低位上的值并将结果的最低位置1。 5、阶码溢出判断 阶码无溢出 加减运算正常结束 阶码下溢 运算结果置为机器0 阶码上溢 置溢出标志

  7. 例:已知 x=0.11011011*22,y=-0.10101100*24求:x+y 两数的浮点表示为: [x]浮= 00 010 00 11011011 [y]浮= 00 100 11 01010100 ①对阶:x尾数Mx右移两位,x阶码Ex加2, 则 [x]浮=00 100 00 0011011011 ② 尾数求和: 00 00110110 11 ++ 11 01010100 111 11 10001010 11 ③ 规格化 尾数左归应为:11 00010101 10 阶码为:00 011④ 舍入处理:尾数采用0舍1入结果为:11 00010110 ⑤ 判溢出:阶码符号为00,无溢出故最终结果为: [x+y]浮=00 011 11 00010110 则:x+y=-0.1110101010*2011

  8. 浮点数的乘除运算 1、运算规则 : ①阶码相加减 ②尾数相乘除 2、需注意的问题: ①也需进行规格化及精度处理 ②浮点数阶码用移码、尾数用原码表示 3、浮点数的阶码运算 [x]移=2n+y -2n<x< 2n (mod 2n+1) [x]补=2n+1+y

  9. 浮点数的乘除运算 [x+y]移=[x]移+[y]补 (mod 2n+1) [x-y]移=[x]移+[-y]补 (mod 2n+1) 阶码运算溢出判断: 使用双符号位移码并规定最高符号位恒为0参加运算,则溢出条件是最高位为1。若运算结果双符号位为: 00——结果为负 0 01——结果为正 1 10——结果上溢 1 11——结果下溢

  10. 例: 例:已知下列移码进行移码加减运算并判断溢出: 若x=+011 y=+110 则有:[x]移=01 011 [y]补=00 110 [-y]补=11 010 [x+y]移=[x]移+[y]补 =10 001 结果上溢 [x-y]移=[x]移+[-y]补=00 101 结果正确,为-3 若x=-011 y=-110 则有:[x]移=00 101 [y]补=11 010 [-y]补=00 110 [x+y]移=[x]移+[y]补 =11 111 结果下溢 [x-y]移=[x]移+[-y]补=01 011 结果正确,为+3

  11. 浮点数的乘除运算 4、浮点数的尾数处理 方法1:截断处理 方法2:舍入处理 尾数用原码表示的舍入规则: ①末位恒1 尾数 相乘除①阶码相加减 ②0舍1入 尾数用补码表示的舍入规则: ①当丢失的各位均为0时,不必舍入; ②当丢失的最高位为0,以下各位不全为0时,或者丢失的最高位为1,以下各位均为0时,则舍去丢失位上的值;

  12. 浮点数的乘除运算 ③当丢失的最高位为1,以下各位不全为0时,则执行在尾数最低位入1的修正操作 例1:设[x1]补=11.01100000, [x2]补=11.01100001 [x3]补=11.01101000, [x4]补=11.01111001,求执行只保留小数点后4位有效数字的舍入操作值。 解:执行舍入操作后,其结果值分别为 [x1]补=11.0110 (不舍不入) [x2]补=11.0110 (舍) [x3]补=11.0110 (舍) , [x4]补=11.1000 (入)

  13. 浮点数的乘除运算举例 已知: x=0.1110011*2-5,y=-0.1110010*23阶码用4位移码表示,尾数(含符号位)用8位原码表示。求:x*y (要求尾数仍保留8位,用尾数之后的4位处理舍入操作) 解:移码采用双符号位,尾数用原码表示则: [Ex]移=00 011 [Ey] 补=00 011 [Ex+Ey]移= [Ex]移+ [Ey] 补=00 011+00 011= 00 110 (值为-2) 尾数采用原码一位乘法结果为:1 11001100110110 已满足规格化要求,尾数不变,阶码仍为00 110 舍入处理:尾数之后4为0110,应使末位置1 最终结果为:[x*y]浮=00 110 1 1100111, 真值为:-0.1100110* 2-2

More Related