我有一个问题,包括浮点表示(两个位置符号尾数指数),你能检查一下,我做得对吗?
-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 | ...
我的主要问题是何时知道指数为负数,你能给我任何提示吗?
答案 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位)01111100
(8 bits)