软考中级-软件设计师-笔记-浮点数
工业标准IEEE754。IEEE754是由IEEE制定的有关浮点数的工业标准,被广泛采用。该标准的表示形式如下:
$$ (-1)^{S}2^{E}(b_{0}b_{1}b_{2}b_{3}...b_{p-1}) $$
其中,$ (-1)^{S}$为该浮点数的数符,当$ S $为0时表示正数,$ S $为1时表示负数。$ E $为指数(阶码),用移码表示。$ (b_{0}b_{1}b_{2}b_{3}...b_{p-1}) $为尾数,其长度为$ P $位,用原码表示。
下表,3种形式的IEEE754浮点数格式
参数 | 单精度浮点数 | 双精度浮点数 | 扩充精度浮点数 |
浮点数字长 | 32 | 64 | 80 |
尾数长度P | 23 | 52 | 64 |
符号位S | 1 | 1 | 1 |
指数长度E | 8 | 11 | 15 |
最大指数 | +127 | +1023 | +16383 |
最小指数 | -126 | -1022 | -16382 |
指数偏移量 | +127 | +1023 | +16383 |
可表示的实数范围 | $10^{-38} \sim 10^{38} $ | $ 10^{-308} \sim 10^{308} $ | $10^{-4932} \sim 10^{4932} $ |
例:利用IEEE754标准将数176.0625表示为单精度浮点数。
首先将该十进制数字转换成二进制数字。
$$ (176.0625)_{10} =(10110000.0001)_{2} $$
其次对二进制数进行规格化处理。
$$ 10110000.0001 = 1.0110000.0001\times 2^{7} $$
保留小数点后数字,扩展为单精度浮点数规定的23位。
$$ 01100000001000000000000 $$
上述表示中的指数为7,单精度偏移量127。
$$ E=7+127=134=(10000110)_{2} $$
最终得到的,1位符号位+8位阶码+23位尾数:
0 10000110 01100000001000000000000