将20.163转换成754标准的32位浮点数
1.将十进制数转换成二进制数
十进制浮点数,整数部分转换成二进制,采用除2取余法,将余数从低到高排列,即为整数的二进制数;
小数部分转换成二进制,采用乘2取整法,将取整数顺序排列,即为小数的二进制数。
小数部分乘2直到小数部分为0,或取到想要的位数,或循环出现前。
整数部分
20/2=10 .... 0
10/2=5 .... 0
5/2=2 .... 1
2/2=1 .... 0
1/2=0 ..... 1
小数部分
0.163*2=0.326 0
0.326*2=0.652 0
0.652*2=1.304 1
0.304*2=0.608 0
0.608*2=1.216 1
0.216*2=0.432 0
0.432*2=0.864 0
0.864*2=1.728 1
0.728*2=1.456 1
0.456*2=0.912 0
不要求精度时,通常取到8~10位
20.163=10100.0010100110
2.移动小数点到第1、2位之间,得e的值
10100.0010100110=1.01000010100110 *2的4次方 e=4(小数点移动4位)
3.求出S、E、M的值
S=0,E=4+127=131,M=01000010100110
S由小数点的后一位可以看出,0为正数,1为负数。
0 1000001 01000010100110000000000
IEEE754标准中32位浮点数表示
S E M
S是符号位占1位,E是阶码占8位,M是尾数占23位。
当尾数的值不为0时,尾数的最高有效位应为1,这称为浮点数的规格化表示
这样形式的叫规格化
新手初学,有问题或者错误,麻烦评论下 留言指正,谢谢