-0.75转化成ieee754单精度浮点数的过程
时间: 2025-03-10 16:00:37 浏览: 47
将 `-0.75` 转化为 IEEE 754 单精度浮点数的过程可以分为几个步骤来进行:
### 步骤一:表示二进制形式
首先,需要把十进制数值转换成二进制。
对于整数部分 `0` ,其二进制仍然是 `0`.
对小数部分 `.75` 进行计算:
- .75 * 2 = 1.5 -> 取出1
- 剩下的 .5 再乘以2得 1.0 -> 取出1
因此,`.75` 的二进制是 `0.11`
所以最终的绝对值结果就是:`0.11` (即二进制)
由于原始数字带负号,则我们知道最后形成的IEEE754表示应该有一个符号位为“1”。
### 步骤二:规格化该二进制科学计数法表达式
为了规范化这个二进制数(使其成为标准化的格式),我们需要移动小数点直到它只出现在第一个非零数字之后。在这种情况下,我们实际上不需要移动任何位置因为已经是规范化的了(即已经是以 1.xxx 形式的最大有效数字开头)。但是按照规则我们将隐藏首位1并假设它是存在的,在这里意味着我们的指数偏移量应保持不变或者说是从默认情况 (1.xxxx...) 开始调整。
然而需要注意的是,根据IEEE标准规定,当处理正规形式的数据时,默认存在最左边的一个隐含"1." 所以上述得到的结果实际代表 "(-)1.1 × 2^-1".
### 步骤三:确定指数部分
接下来,我们要找到正确的偏差(excess) 指数来编码真正的次方。单精度浮点数使用8位存储指数,并采用偏置(bias)技术,其中bias=127(对于单精度而言).
原来的真正幂是 -1 。加上偏置值得到用于储存的实际指数:
```
E = e + bias = (-1) + 127 = 126 => 在二进制下表示为:01111110
```
### 步骤四:整理尾数(mantissa)
现在让我们看看尾数。如前所述,第一位总是假定为 “1”,所以我们只需要保存后面的几位即可;在这个例子中,“.” 后面的部分就是 “1”。所以在这种特定的情况下,只有两个后续位被记录下来作为有效负载的一部分:“10”填充剩余的空间直至达到总长度23bits(全补上0).
### 最终组合起来
至此我们可以写出完整的IEEE 754单精度浮点表示:
- 符号(Sign bit): 因为我们有负数,这将是 '1'
- 指数(Exponent bits [8]): 使用上面算出来的 01111110 表示
- 尾数(Fraction/Mantissa bits [23]) : 我们的 mantissa 经过上述分析后得知是 10 接着跟随着很多个 0 来补充至总共 23 位长
合在一起就变成了:
```text
S | Exponent | Mantissa/Fraction |
---------------------------------------------------------------
1 | 01111110 (binary) | 10 followed by zeros up to fill space|
```
换算成十六进制的话会更紧凑些:
```hexadecimal
BF40 0000
```
这就是 `-0.75` 对应在 IEEE 754 格式下单精度浮点数的表现形式啦!
阅读全文
相关推荐
















