计算机数值表示与IEEE 754标准详解
1. 二进制数的转换
二进制数的每一位都有其位置权重,利用这一特性可以将二进制数转换为十进制数。对于二进制数的小数部分,也可以采用类似的方法转换为十进制小数。例如:
.1 0 1 0 1
|
|
|
.500 _____________________|
|
|
.125 _________________________|
|
.03125 ____________________________|
------
.65625
2. 定点表示法
在计算机中,以二进制形式对实数进行编码和存储存在一些难题,其中之一就是小数点的位置问题。由于二进制只有两个符号,且都用于表示数值,没有额外符号来表示小数点。例如,十进制数58.125可以分别对整数部分和小数部分进行编码:
- 58 = 111010B
- .125 = .001B
在计算机里,无法直接对二进制小数进行显式编码。一种可行的方案是假定小数点位于固定位置。不过,定点表示法存在很大局限性,它要求小数点左右的位数是固定的。比如要存储312.250,其二进制表示为:
- 312 = 100111000
- .250 = .01
该数值的二进制编码共需11位,虽然可以存于16位结构中,但由于该定点格式仅分配8位来表示整数部分,而312需要9位二进制数,所以无法完成编码。
3. 浮点表示法
浮点表示法不采用固定的小数点位置,其灵感源自科学记数法。在传统科学记数