单精度浮点数与二进制数之间转换
IEEE754标准
IEEE二进制浮点数算术标准(IEEE 754)
规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。只有32位模式有强制要求,其他都是选择性的。大部分编程语言都有提供IEEE浮点数格式与算术,但有些将其列为非必需的。例如,IEEE 754问世之前就有的C语言,现在有包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。
一个浮点数 (Value) 的表示其实可以这样表示:
**Value=sign(符号位)exponent(指数偏移值)fraction(分数值)
IEEE754文本表示与位的约定:
把W个比特(bit)的数据,从内存地址低端到高端,以0到W−1编码。通常将内存地址低端的比特写在最右边,称作最低有效位(Least Significant Bit,LSB),代表最小的比特。
最高有效位(most significant bit.MSB)。
指数偏移值:
2e-1,^其中e为存储指数的位的长度,以单精度浮点数为例:它的指数位长为