浮点二进制表示

时间:2016-01-24 20:45:30

标签: floating-point bit-representation

我有一个问题,包括浮点表示(两个位置符号尾数指数),你能检查一下,我做得对吗?

-1/7

-1*1/7*2^0=-1*4/7*2^1=-1*4/7*2^2=-1*8/7*2^3

所以在二进制文件中它就像:

1 00000011 1.001 001 001 001 001 001 001

1/1357
1*1/1357*2^0=1*2048/1357*2^-11
0 | 11110101 | 1.100 000 100...

-205,34
1,60422*2^7
1| 0000011

1 | ...

我的主要问题是何时知道指数为负数,你能给我任何提示吗?

1 个答案:

答案 0 :(得分:0)

我假设你在谈论float(即IEEE754 binary32)?

在二进制中,确切的值是

-1/7 = -1.001001001001001001001001001 ... 2 ×2 -3

首先,指数在[-126,12]范围内,所以我们不需要担心下溢或溢出。

然后我们将有效数字舍入为24位:

-1.00100100100100100100101 2 ×2 -3

(注意有效数字的最后一位是四舍五入的)

我们用偏倚的形式重写指数(指数偏差为127):

-1.00100100100100100100101 2 ×2 124-127

然后我们可以直接读取位模式:

1|01111100|00100100100100100100101

其中:

  1. 符号为负,因此符号位为1(1位)
  2. 124 in binary 01111100(8 bits)
  3. 我们从有效数字(23位)
  4. 中删除隐式前导1