浮点数格式
32位:seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
1位s表示符号S 0或1
8位e表示2的指数E 二进制小数乘2或者出2就是小数点右移或左移
23位m表示小数部分M 二进制小数
(-1)^S * 2 ^ (E-127) * 1.M
1.将十进制小数转换为二进制小数。
2.将二进制小数的小数点左移或者右移(等价于除2或者乘2),为了保持值不变,指数E加一或者减一。最后得到1.mmmmmmmmmmmmmmmmmmmmmmm
3.E+=127;
4.根据浮点数正负,S设定为0或者1;
特殊:
E全0:表示0.0
E全1:表示无穷
十进制小数转二进制
整数部分十进制转二进制:略
小数部分十进制转二进制:
while(小数部分!=0)
小数部分*=2
if(溢出)
记录二进制小数1
else
记录二进制小数0
举例:0.3
0.3*2=0.6 0
0.6*2=1.2 1