前言
期末复习了,mark一下,防止以后用到再忘,记性太差了哈哈哈。
IEEE 754标准
顾名思义,是IEEE 协会制定的一个标准,将规格化浮点数分为单精度(32位)、双精度(64位)、扩展精度(80位)
单精度
符号位(31) | 阶码(30-23) | 尾数有效位(22-0) |
---|
如上所示,符号位占1位,阶码占8位,尾数占23位。
双精度
符号位(63) | 阶码(62-52) | 尾数有效位(51-0) |
---|
如上所示,符号位占1位,阶码占11位,尾数占52位。
步骤
- 将所给数转换为二进制数
- 调整阶码,使尾数最高位为1,然后将这个最高位的1和小数点一起隐含表示,得到尾数
- 将上一步规格化后的阶码加上127,并且转换为二进制
- 按照符号位、阶码、尾数有效位的顺序 依次写出即可
习题实例说明
下面两道题我们按照上面所说的步骤来。
给定-5,求IEEE 754 标准的单精度浮点数
解:
- -5先转换为二进制为-101,由于是负数,最高位符号位用1表示,符号位确定
- 规格化使得尾数最高位为1,101 => 1.01 × 22 ,将尾数最高位和小数点一起隐含表示,且尾数在单精度中占23位,则尾数应为01 后面补21个0,尾数确定。即
01 000000000000000000000
-
阶码由上一步知规格化后,阶码为2,加上127,变成129,即二进制10000001,阶码确定。
-
至此,可以写出来IEEE 754的表示形式
符号位(31) | 阶码(30-23) | 尾数有效位(22-0) |
---|---|---|
1 | 10000001 | 01 000000000000000000000 |
给定十进制数178.125,求IEEE 754标准单精度浮点规格化数
解:
- 178.125先转换为二进制为10110010.001,由于是正数,最高位符号位用0表示,符号位确定
- 规格化使得尾数最高位为1,10110010.001 => 1.0110010001 × 27 ,将尾数最高位和小数点一起隐含表示,即0110010001 ,并且尾数在单精度中占23位,则最终尾数应为0110010001 后面补13个0,尾数确定。即
0110010001 0000000000000
-
阶码由上一步知规格化后,阶码为7,加上127,变成134,即二进制10000110,阶码确定。
-
至此,可以写出来IEEE 754的表示形式
符号位(31) | 阶码(30-23) | 尾数有效位(22-0) |
---|---|---|
0 | 10000110 | 0110010001 0000000000000 |
定采用IEEE754单精度浮点数格式表示一个数为45100000H,则该数的值是__B____。
A.(+1.125)10×210
B.(+1.125)10×211
C.(+0.125)10×211
D.(+0.125)10×210
45100000H=0100 0101 0001 0000 0000 0000 0000 0000
符号位=0,
阶码=10001010,
尾数=00100000000000000000000。
阶码真值=(10001010)2-(127)10=11。
因为隐含了尾数最高数位,尾数为1.001,所以其真值为(+1.125)10×211。