我在一份作业中遇到了困难,需要将二进制浮点数转换为小数。我觉得我理解了这个过程,但是我没有得到正确的答案。以下是我的思路。
我有一个二进制浮点数:
出于纯粹的运气,我猜测5/32是正确的答案,并且我得到了正确的结果;我不知道为什么会这样。
我有一个二进制浮点数:
0 000 101
- 3位指数字段的偏置为3:
2^(3-1)-1 = 3
- 尾数变为
1.101
(基数为2) - 指数位的值为0,减去指数位数3,为-3,所以尾数的十进制小数点向左移动3位
0.001101
- 在10进制中,它是
2^-3 + 2^-4 + 2^-6
,等于0.203125或13/64。
出于纯粹的运气,我猜测5/32是正确的答案,并且我得到了正确的结果;我不知道为什么会这样。
[assembly]
,所以我猜这是为了教学ISA而使用7位IEEE风格的浮点数?这很奇怪,为什么不用8位IEEE https://en.wikipedia.org/wiki/Minifloat?) - Peter Cordes