当前位置: 代码迷 >> C++ >> 求大神帮小弟我把第一组解释清楚 有点蒙了
  详细解决方案

求大神帮小弟我把第一组解释清楚 有点蒙了

热度:6412   发布时间:2013-02-26 00:00:00.0
求大神帮我把第一组解释清楚 有点蒙了
RT

------解决方案--------------------------------------------------------
不是大神,现学现卖一下啊。

f = 0.fn ...f1 f0(frac,二进制小数)
M = 1 + f
e = ek-1 ... e1 e0(exp,二进制整数)
bias = 2^(k-1)-1(这个是偏置值,本题中直接定义为3和7)
E = e - bias
V = M * 2^E(这个就是二进制表示的十进制浮点数值)

所以
第一组101 1110格式A:
f = 0.1110 = 7/8
M = 1 + f = 15/8
e = 101 = 5
bias = 3
E = 5-3 = 2
V = M * 2^E = 15/8 * 2^2 = 15/2

转换成格式B其实就是将f的最后一位先舍去(因为格式B的表示小数部分的二进制少了一位),其他值保持和格式A一样,所以:
f = 0.111 = 7/8
M = 15/8
bias = 7
E = e- bias = e-7 = 2
e = 7+2 = 9 = 1001
V = M*2^E = 15/2完整的二进制位: 1001 111

第一组因为f的最后一位是0所以转换成格式B之后没有影响,看看第二组010 1001:
格式A:
f = 0.1001 = 9/16
M = 1 + f = 25/16
e = 010 = 2
bias = 3
E = 2 - 3 =-1
V = M* 2^E = 25/16 * 2^-1 = 25/32

格式B:
f = 0.100 = 1/2
M = 1 + 1/2 = 3/2
E = -1 = e-7
e = 6 = 0110
V = M * 2^E = 3/2 * 1^-1= 3/4完整的二进制位 0110 100
  相关解决方案