我们怎么用二进制得到这个实数?

时间:2011-09-29 23:05:44

标签: binary numbers floating-point

来自this article

数字5.125(二进制101.001)为什么? 101是5,但小数位是如何转换的?

同样从那篇文章中 - 将偏差添加到实际指数e中。

什么是偏见?它的目的是什么?

4 个答案:

答案 0 :(得分:4)

为什么b101.001 = 5.125

这就是二进制点之后的数字如何工作。它们就像base10中小数点后的数字(通常称为“小数”)。

b10 = 2^1
b1 = 2^0
b0.1 = 2^-1
b0.01 = 2^-2
b0.001 = 2^-3 = 0.125

此表示称为定点。更多信息here


什么是指数偏差?

偏差是用二进制表示浮点数的规范的一部分(参见IEEE 754)。它是您添加到指数的数字,用于将其从-limit转换为+limit范围到0+2*limit范围。这使得计算机能够使用无符号解释来存储数字。

为什么指数偏差?

使用指数偏差的原因是它允许计算机使用无符号系统而不是二进制补码。这使得浮点比较更容易。

答案 1 :(得分:3)

同样的方式:每个“1”数字贡献2^d,其中d是数字的位置。单位数字位于0,该位置向左和向右计数,因此该点的位置为-1。因此0.0012^-31/80.125


IEEE754浮点表示中指数偏差的目的是,您不需要任何额外的逻辑来确定指数的符号,它还具有词典的额外优势二进制表示的排序等于值排序(至少对于一个固定的符号):所以0x00000000,即0.0,后跟0x00000001,这是最小的正数(尽管是非正规的) )漂浮。由于偏差,它的指数是最小(负)指数。

答案 2 :(得分:3)

有关二元分数如何工作的详细说明,请参阅the Floating-Point guide

  

什么是偏见?它的目的是什么?

使用biased exponent是因为它允许浮点数与值进行比较,就像整数一样,即如果位模式A在解释为整数时大于位模式B,则始终为真如果你把图案解释为浮点数。

答案 3 :(得分:2)

1 * 2^2  = 4
0 * 2^1  = 0
1 * 2^0  = 1
.
0 * 2^-1 = 0
0 * 2^-2 = 0
1 * 2^-3 = 0.125
----------------
101.001  = 5.125

基数上的指数继续递减小数点后的每个数字。在基数2中,这意味着第一个数字值为1/2 = .5,第二个数字为1/4 = .25,第三个数字为1/8 = 0.125。

它与基数10的工作方式相同:第一个数字是1/10 = 0.1,第二个数字是1/100 = 0.01等......