IEEE754浮点数加减运算

IEEE754浮点数加减运算移码
定义:[X]移 = X + 2n ( -2n ≤ X < 2n )
X为真值,n为整数的位数
数值位和X的补码相同,符号位与补码相反
舍⼊⽅法
0舍1⼊
保留4位尾数
0 00100 -> 0 0010
/*
**0直接舍去
*/
1 00101 -> 1 0011
/*
**1进位
*/
1 11011 -> 1 1110
末位恒置1
保留4位尾数:
0 00100 -> 0 0011
1 00101 -> 1 0011
1 11011 -> 1 1101
IEEE 754
32位单精度
Sign8位阶码 [偏移量为28-1-1 = 127的⾮标准移码]23位尾数
真值表达式E的取值范围
N = (-1)s × 2E-127 × 1.M1到254
64位双精度
Sign11位阶码 [偏移量为211-1-1 =1023的⾮标准移码]252位尾数
真值表达式E的取值范围
N = (-1)s × 2E-1023 × 1.M1到2046
为了确保浮点数表⽰的唯⼀性,约定 0 ≤ M < 1
各字段的含义( 以单精度为例 )
规范浮点数
1 ≤ E ≤ 254
真值表达式:N = (-1)s × 2E-127 × 1.M,尾数部分隐含开头的1
最⼩的正规格化数
00000 00010000 0000 0000 0000 0000 000
最⼤的正规格化数
01111 11101111 1111 1111 1111 1111 111
⾮规范浮点数
E = 0,M ≠ 0
s0000 0000≠ 0
真值表达式:N = (-1)s × 2-126 × 0.M,尾数部分不隐含开头的1最⼩的正⾮规格化数
s0000 00000000 0000 0000 0000 0000 001
最⼤的正⾮规格化数
s0000 00001111 1111 1111 1111 1111 111
浮点数0
E = 0,M = 0
s0000 00000000 0000 0000 0000 0000 000
有+0.0和-0.0两种零
⽆穷⼤
E全为1(255),M = 0
正⽆穷⼤cellid
01111 11110000 0000 0000 0000 0000 000
负⽆穷⼤
11111 11110000 0000 0000 0000 0000 000
NaN Not a Number
计算sqrt(-1)或∞-∞时会返回NaN
E全为1(255),M ≠ 0
s1111 1111≠ 0
为什么要使⽤127作为偏移量⽽不是128
溢出
上溢:阶码⼤于机器的最⼤阶码,不能继续运算,⼀般要进⾏中断处理下溢:阶码⼩于最⼩阶码,当做零处理,机器可以继续运算
规格化浮点数
当尾数结果为 或 11.1x (x)
尾数左移,阶码减1,直到尾数形式为 或 11.0x (x)
当尾数结果为 或 10.x (x)
尾数右移,阶码加1,尾数形式变为 或 11.0x (x)
阶码加减
设:
AE、BE为阶码,CE为结果阶码
[ AE + BE ]移
= ( AE + BE ) + 127
= ( AE + 127 ) + ( BE + 127 ) - 127
= [ AE ]移 + [ BE ]移 -127
= [ AE ]移 + [ BE ]移 + [ -127 ]补
= [AE]移 + [BE]移 + 129
= ( [AE]移 + [BE]移 + 129 ) mod 28
[ AE - BE ]移
= ( AE - BE ) + 127
= ( AE + 127 ) - ( BE + 127 ) + 127
= [ AE ]移 - [ BE ]移 + 127
= ( [AE]移 - [BE]移 + 127 ) mod 28
梨花护肤品
浮点数加减
设:
A = 2AE × A M,
B = 2BE × B M
AE、BE为阶码,A M、B M为尾数
舍⼊
右移时:
0舍1⼊
末位恒置1
例题
铝制工艺品x = 0.5, y = 0.4375, 32位单精度表⽰,求x + y和x - y 转换为⼆进制车载广告
1. 0.5 x 2 = 1.0 取1
0.1 → 1.0 x 2 -1
[x]浮 =
00111 11100000 0000 0000 0000 0000 000 -1 + 127 = 126
1. 0.4375 x 2 = 0.875 取0
2. 0.8750 x 2 = 1.750 取1
灌浆剂3. 0.7500 x 2 = 1.500 取1
4. 0.5000 x 2 = 1.000 取1
-0.0111 → 1.11 x 2-2
[y]浮 =
10111 11011100 0000 0000 0000 0000 000 -2 + 127 = 125
求阶差
(0111 1110 - 0111 1101 + 127)mod 28 = 1
y向x对齐
y = 0.111 x 2-1
[y]浮 =
10111 11101110 0000 0000 0000 0000 000
尾数加减
+
00.0000 0000 0000 0000 0000 000
00.0010 0000 0000 0000 0000 000
00.0010 0000 0000 0000 0000 000
结果为00.0x…x,左规
得到1.0… x 2-4
结果 = 0.0625
00111 10110000 0000 0000 0000 0000 000 -4 + 127 = 123
-锁架
00.0000 0000 0000 0000 0000 000
00.1110 0000 0000 0000 0000 000
00.1110 0000 0000 0000 0000 000
结果 = 0.9345
00111 11101110 0000 0000 0000 0000 000

本文发布于:2024-09-21 12:40:24,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/138501.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:尾数   阶码   浮点数   表达式   偏移量   含义
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议