IEEE754浮点数 课下作业
作业要求
- 把十进制数5.75,161.875,-0.0234375 转换成754标准的32位单精度浮点数,并用http://www.weitz.de/ieee/验证你转化是否正确;
- 使用C语言验证你的转化是否正确。
作业思路
对于5.75,最终将其转换成单精度浮点数表示为0 10000001 01110000000000000000000
- 整数部分 采用除2取余法,将余数从低到高排列;
5/2=2 ...1
2/2=1 ...0
1/2=0 ...1
- 小数部分 采用乘2取整法,将取整数顺序排列;
0.75*2=1.5 ——1
0.5*2=1 ——1
故5.75=101.11;
- 接着判断其为正数,符号位S=0;
- 下一步移动小数点,确定其阶数;
101.11=1.0111*2² e=2
故阶码E=127+2=129,转换为二进制表示为10000001
- 最后求得尾码M=01110000000000000000000
根据以上思路求得答案
对于161.875,最终将其转换成单精度浮点数表示为0 10000110 01000011110000000000000
161/2=80 ...1
80/2=40 ...0
40/2=20 ...0
20/2=10 ...0
10/2=5 ...0
5/2=2 ...1
2/2=1 ...0
1/2=0 ...1
0.8752=1.75 --1
0.752=1.5 --1
0.52=1 --1
故161.875=10100001.111=1.01000011112的七次方 E=127+7=134,转换为二进制表示为10000110,M=01000011110000000000000
对于-0.0234375,最终将其转换成单精度浮点数表示为1 01111001 10000000000000000000000
0.02343752=0.046875 --0
0.0468752=0.09375 --0
0.093752=0.1875 --0
0.18752=0.375 --0
0.3752=0.75 --0
容易求得-0.0234375=-0.0000011=-1.12的六次方,E=127-6=121,转换为二进制表示为01111001
用IEEE754计算器验证
用C语言验证
暂时不会怎么验证