Binary 如何转换2+;(2/7)至IEEE 754浮点
有人能给我解释一下将十进制格式的数字(如2+(2/7))转换为IEEE 754浮点表示的步骤吗?谢谢 首先,Binary 如何转换2+;(2/7)至IEEE 754浮点,binary,ieee-754,Binary,Ieee 754,有人能给我解释一下将十进制格式的数字(如2+(2/7))转换为IEEE 754浮点表示的步骤吗?谢谢 首先,2+2/7不是大多数人所说的“十进制格式”。“十进制格式”更常用于表示以下数字: 2.285714285714285714285714285714285714285714... 即使是…也有点快和松。更常见的情况是,数字会被截断或四舍五入到某个小数位数: 2.2857142857142857 当然,在这一点上,它不再完全等于2+2/7,而是“足够接近”大多数用途 我们做了一些类似的事情
2+2/7
不是大多数人所说的“十进制格式”。“十进制格式”更常用于表示以下数字:
2.285714285714285714285714285714285714285714...
即使是…
也有点快和松。更常见的情况是,数字会被截断或四舍五入到某个小数位数:
2.2857142857142857
当然,在这一点上,它不再完全等于2+2/7
,而是“足够接近”大多数用途
我们做了一些类似的事情,将一个数字转换成IEEE-754格式;我们先将数字写在基数2中,而不是以10为基数:
10.010010010010010010010010010010010010010010010010010010010010...
接下来,我们对数字进行“规范化”,将其以某种指数的形式写入2^e*1.xxx…
(特别是数字前导位的数字位置):
在这一点上,我们必须选择一种特定的IEEE-754格式,因为我们需要知道需要保留多少位数。让我们选择“单精度”,它有24位有效位。我们将重复的二进制数舍入为24位:
2^1 * 1.00100100100100100100100 10010010010010010010010010010010010010...
24 leading bits bits to be rounded away
由于要舍入的尾随位大于1000…
,因此该数字舍入为:
2^1 * 1.00100100100100100100101
现在,这个值实际上是如何以IEEE-754格式编码的?单精度格式有一个前导符号位(零,因为数字是正数),后跟八个二进制位,其中包含值127+e
,后跟有效位的小数部分:
0 10000000 00100100100100100100101
s exponent fraction of significand
在十六进制中,这给出了
0x40124925
您是在询问汇编代码中的算术表达式计算器,还是什么?您的意思不仅仅是2.0+(2.0/7.0)
?您想要在IEEE754中对这些数字进行二进制表示,并描述加法和除法是如何工作的,还是其他什么?
0 10000000 00100100100100100100101
s exponent fraction of significand