十进制转IEEE754单双精度浮点数格式

1.单精度格式(32位):

符号位(S)1位;
阶码(E)8位,阶码的偏移量为127(7FH);
尾数(M)23位
1位		8位		23位
S   	E		M

求S、E、M

例如:
十进制 :86.75
求S、E、M步骤如下:

1)求S:判断正数还是负数,如果为正数,S = 0,如果为负数,S = 1
2)求E:十进制转为二进制,然后将其变成1.M的格式,我们需要向左移N位

E = 偏移量(单精度偏移量127)+左移位数

(86.75)10  = (101 0110.11)2
左移六位得到(1.0101 1011)2
(整数有七位则移6位),

E=127+6(左移6位则加6)
=(133)10
=(1000 0101)2
3)求M:将左移得到的数字的小数部分取下,不够23位,后面加零
M= 0101 1011 0000 0000 0000 000
4)将S、E、M组合
得到结果:0 1000 0101 0101 1011 0000 0000 0000 000

2.双精度格式(64位):

符号位(S)1位;
阶码(E)11位,阶码的偏移量为1023(3FFH)
尾数(M)52位
1位		11位		52位
S   	E		M

求S、E、M方法与单精度差不多,只是加的偏移量和位数不一样

你可能感兴趣的:(经验分享)