1

我在理解浮点表示(Two's Placement-sign mantissa exponent)时遇到问题,你能检查一下,我做得对吗?

-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 | ...

我的主要问题是什么时候知道指数是负数,你能给我一些提示吗?

4

1 回答 1

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 二进制01111100(8 位)
  3. 我们从有效数字(23 位)中删除隐含的前导 1
于 2016-01-28T09:36:21.940 回答