IEEE754浮点数 课下作业

发布时间 2023-10-15 16:15:24作者: 苦瓜。20231323

作业要求

  • 把十进制数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.75
2=1.5 --1
0.52=1 --1
故161.875=10100001.111=1.0100001111
2的七次方 E=127+7=134,转换为二进制表示为10000110,M=01000011110000000000000

对于-0.0234375,最终将其转换成单精度浮点数表示为1 01111001 10000000000000000000000
0.02343752=0.046875 --0
0.046875
2=0.09375 --0
0.093752=0.1875 --0
0.1875
2=0.375 --0
0.3752=0.75 --0
容易求得-0.0234375=-0.0000011=-1.1
2的六次方,E=127-6=121,转换为二进制表示为01111001

用IEEE754计算器验证

用C语言验证

暂时不会怎么验证