根据IEEE 754标准,单精度浮点数(float)的二进制表示由符号位、指数位和尾数位三部分组成,具体规则如下:
一、结构组成
用0表示正数,1表示负数。例如,正数123.45的符号位为0,负数则为1。
指数位(8位)
采用偏移表示法,实际指数为`E - 127`。例如,指数为100的二进制为`1100100`,实际值为`100 - 127 = -27`。
尾数位(23位)
有效数字部分,范围为`1.M`(M≥1且M<2)。例如,尾数为`10010000000000000000000`,实际数值为`1.00100000000000000000000`。
二、转换规则
正数处理
- 将整数部分向左移动,直到小数点后第一位为1,记录移动位数`n`。 - 尾数部分从1开始取`n-127`位,不足时补0。 - 指数位为`n`的二进制表示。
负数处理
- 符号位设为1,其余部分按正数规则计算。
三、示例
以浮点数`123.45`为例:
符号位:0(正数)
整数部分`123`转换为二进制为`1111011`,小数点左移10位后为`1.111011×2^10`,指数`n=137`,二进制为`10001001`。- 尾数部分为`10010000000000000000000`(去掉前导1)。- 最终二进制表示为`0 10001001 10010000000000000000000`。
四、注意事项
精度限制: 单精度浮点数可表示的数值范围为`±1.17549435×10^38`,但无法精确表示某些十进制数(如`2^60`)。- 内存存储