IEEE 754 64位存储格式为:
1(符号位Sign)+11(指数部分Exp)+52(尾数部分Fraction)
偏置码为1023。
实例:
计算16进制编码(40 14 00 00 00 00 00 00)的double类型值。
1.将16进制编码转化为二进制编码并按1+11+52的方式分类,得到结果如下:
二进制:0004 0000 0001 0004 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000
Sign: 0
Exp: 004 0000 0001 = (1025)
Fraction: 0004 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
2.将尾数部分Fraction 加上1. 得到:
1.0004 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 (*)
3.计算偏移位数
偏移位数 = Exp - (偏置码) = (1025-1023) = 2
4.
将(*)向右偏移两位得到:
100.04 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
最后按公式计算值(根据小数点位置):
1*(2^2) + 0*(2^1) + 0*(2^0) + 0*(2^1) + 4*(2^(-1)) + ...
= 4 + 1 = 5
所以最后16进制编码(40 14 00 00 00 00 00 00)代表的double类型值为: 5.0d
版权声明:本文为zhangtong_1218原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。