二进制转十进制小数位

浮点型在内存中的存储因不同的计算机平台而异,但大多数现代计算机平台都遵循IEEE-754标准。IEEE-754标准定义了浮点数的存储方式,包括符号位、指数位和尾数位。为了更好地理解这一标准,让我们深入了解IEEE-754是如何存储浮点数的。
我们来看看单精度浮点数(32位)或双精度浮点数(64位)的基本结构。在IEEE-754标准下,这三个部分分别是符号位、指数位和尾数位。对于C语言中的单精度浮点数,其位布局如下:
符号位 指数位 尾数位
浮点数的值等于尾数乘以2的指数次方。为了更好地理解这一点,我们可以将其与十进制小数进行对比:例如,十进制中的0.1可以表示为二进制中的1.0乘以2的-4次方。在二进制中,“尾数+指数”的模式用于表示浮点数。这种模式可能会产生一些问题,例如一个数字可能有多种“尾数+指数”的表示方法(如2x10^-1等于0.2x10^0)。这就需要一个统一的标准来确保每种数字都有唯一的表示方法。IEEE-754标准解决了这个问题:它规定除非数字是零,否则尾数部分总是至少有一个二进制位是1。这样,我们就可以通过移动小数点来确定唯一的“尾数+指数”表示方法。由于小数点前的数字总是为1,所以在存储时并不需要额外存储这部分。
