浮点数表示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浮点数表示
两种数据表示数的范围表示数的精度表示数的效率实数无限无限不冗余
浮点数有限有限冗余(规格化浮点数)
± M × B E –M = 尾数
– B = 基数
– E = 阶码
–S = 浮点数符号
–M = 尾数
– E = 阶码
S阶码E尾数M 1 bit
–1 位符号位, 8 位阶码, 23 位小数–1 位符号位, 11 位阶码, 52 位小数S阶码E尾数M
1 bit 8 bit 23 bit
S阶码E尾数M
1 bit 11 bit 5
2 bit
–我们用三个版本表示
–最后一个版本被叫做 IEEE 754 浮点数标准
00000111
11 1001 0000 0000 0000 0000
1 bit 8
bits
23 bits
22810 = 111001002
111001002 = 1.110012 ×
2
7 –符号位为正(0),8位阶码位表示数字7,剩余的23 位为尾数
00000111
110 0100 0000 0000 0000 0000
1 bit 8 bits 23 bits
–
228
10 = 111001002 = 1.11001 × 27 0 00000111 11 1001 0000 0000 0000 00001 bit 8 bits 23 bits
-
阶码有正有负 -
阶码需要易于比较大小 -
补码表示阶码不容易比较大小 -用偏置码表示阶码更适合
–f1 = 228
10
= 111001002 = 1.11001 × 27
–f2 = 15
10
= 11112 = 1.111 × 23
7 3
37
–单精度浮点数 +127
–双精度浮点数
+1023
[E]
真值e
十进制 二进制 二进制 十进制 [E]偏置阶码 [E]补 -126 -01111110 1,0000010 00000001 1 -125 -01111101 1,0000011 00000010 2 ┇ ┇ ┇ ┇ ┇ - 1 -00000001 1,1111111 01111110 126 0 00000000 0,0000000 01111111 127 1 00000001 0,0000001 10000000 128 ┇ ┇ ┇ ┇ ┇ 127 01111111 0,1111111 11111110 254
0 00000111 110 0100 0000 0000 0000 0000 1 bit 8 bits 23 bits
–22810 = 111001002 = 1.
11001
× 27 0 00000111
11 1001 0000 0000 0000 0000符号阶码尾数
1 bit 8 bits 23 bits
0 10000110 110 0100 0000 0000 0000 0000
1 bit 8 bits 23 bits
例:将 -58.25
10
写成单精度浮点数(IEEE 754)
1.将十进制转换成二进制: 58.25
10
= 111010.01
2
−符号位: 1(负)
−8 位偏置阶码: (127 + 5) = 132 = 10000100
2 −2
3 位小数部分: 110 1001 0000 0000 0000 0000
16进制: 0xC2690000 1100 0010 0110 1001 0000 0000 0000 0000
1 bit 8 bits 23 bits
例:若浮点数X的IEEE754标准存储格式为(41360000)
16
求其浮点数十进制数值。
0 100 0001 0 011 0110 0000 0000 0000 0000
(2) e = E-127 = 10000010-01111111 = 00000011 = (3)10
*
S
浮点0
负数区正数区
Single precision Double p
sign e m value sign e m value Positive 0 0 0 0 0 0 0 0 0 Negative 0 1 0 0 -0 1 0 0 -0 Positive infinite 0 255 0 ∞0 2047 0 ∞Negative infinite 1 255 0 -∞ 1 2047 0 -∞NaN 0or1 255 !=0 NaN 0or1 2047 !=0 NaN 正规格化非0 0 0 –1 位符号位, 8 位阶码, 23 位小数 –1 位符号位, 11 位阶码, 52 位小数