关于C中的浮点数的存储问题
假如一个字节由位模式11101011组成,并且规定从左往右,第1位为符号位,第2-4位为指数域,最后四位为小数域。
根据「计算机科学概论(第11版)」中关于浮点数的算法:
先求指数域(110)的内容,为 6 - 4 = 2,即将小数域(.1011)向左移动两位为 10.11,最后加上符号位,结果为-4.75
但是根据CSAPP中IEEE的规定,浮点标准用:V = (−1)S × M × 2^E表示:
根据公式计算可得:S=1,E=6-(2^(3-1) - 1)=3,M=1+1/2+1/8+1/16=27/16,最后V= -27/16 * 2^3 = -27/2
为什么两种方法算出来的结果不一样?还是我什么地方算错了?