关于IEEE754单精度(32位)的计算步骤(超详细)

知识点一:IEEE754单精度(32位)的二进制排列规则:符号位S(1位,0为正数,1为负数) + 阶码E(8位)  + 尾数M(23位)

知识点二:单精度的偏置常数为127(固定值),阶码 = 127 + 阶

 

例子一:将十进制数33.758转换为IEEE754的单精度浮点数格式表示

步骤①:将整数部分整除以2,取余数部分倒序排列

       33 / 2 = 16   余数为1

       16 / 2 = 8     余数为0

         8 / 2   = 4    余数为0  

         4 / 2  = 2     余数为0

         2 / 2 = 1      余数为0

         1 / 2 = 0       余数为1

      得到整数部分二进制为 1000 01

 

步骤②:将小数部分乘以2,取商的整数部分正序排列

     0.758 * 2 = 1.516   取商的整数部分1    1.516 - 1 = 0.516      

     0.516 * 2 = 1.032   取商的整数部分1    1.032 - 1 = 0.032       

     0.032 * 2 = 0.064    取商的整数部分0

     0.064 * 2 = 0.128    取商的整数部分0

     0.128 * 2 = 0.256    取商的整数部分0

     0.256 * 2 = 0.512    取商的整数部分0 

     0.512 * 2 = 1.024    取商的整数部分1   1.024 - 1 = 0.024

     0.024 * 2 = 0.048    取商的整数部分0

     0.048 * 2 = 0.096    取商的整数部分0

     0.096 * 2 = 0.192    取商的整数部分0

    0.096 * 2  = 0.384    取商的整数部分0

    0.384 * 2 = 0.768     取商的整数部分0

    0.768 * 2 = 1.536     取商的整数部分1   1.536 - 1 = 0.536

    0.536 * 2 = 1.072     取商的整数部分1   1.072 - 1 = 0.072

    0.072 * 2 = 0.144     取商的整数部分0

    0.144 * 2 = 0.288     取商的整数部分0

    0.288 * 2 = 0.576     取商的整数部分0

    0.576 * 2 = 1.152     取商的整数部分1    1.152 - 1 = 0.152

    0.152 * 2 = 0.304     取商的整数部分0

尾数可以取23位,但因小数点后第一位"1"不显式地表示出来,这样可用23位来表示24位尾数,因前面整数已经占6位,则小数部分只能取18位,即1100 0010 0000 1100 01

故33.758转换为二进制为:1000 01.1100 0010 0000 1100 01

 

步骤③:小数点向左移,直到整数部分为1,即1.00001110000100000110001 * 2 ^ 5

   至此得到阶为5,阶码 = 5 + 127 = 132   转换成二进制为1000 0100,即阶码E = 1000 0100

   尾数M为1.后面的数,即00001110000100000110001

 

步骤④:根据数值的正负定义符号位

     33.758 > 0 所以符号位S为0

步骤⑤:根据知识点一进行数值组装

得到IEEE754的单精度浮点数格式为

符号位S(1位,0为正数,1为负数)   +     阶码E(8位)   +       尾数M(23位)

                              0                              1000 0100              0000 1110 0001 0000 0110 001

本文参考:https://blog.csdn.net/crjmail/article/details/79723051

进制转换工具:http://tool.oschina.net/hexconvert

单精度验证工具:http://www.binaryconvert.com/convert_float.html

 原创文章,转载请注明出处,谢谢

  • 144
    点赞
  • 519
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值