c语言浮点数的比特表示方式

(注意:pow(2,E)表示2的E次方)

c语言单精度浮点数float类型大小为4字节,共32位。

其中最高1位为符号位,符号位后的8位为指数区,剩下23位为数据区。

浮点型表示方式大概为M*pow(2,E)

其中M为精度数,E为2的指数

符号位顾名思义,1表示负数,0代表正数

下面不考虑符号位

1.当指数区全为0时,E=pow(2,8-1)+2=-126,M=数据区表示的大小/pow(2,23),所以数值为M*pow(2,-126)

如0 00000000 11111111111111111111111为((pow(2,23)-1)/pow(2,23))*pow(2,-126)

2.指数区不全为0时,E=pow(2,(8-1)+1+指数区值),如01111111为1

注意M=1+(数据区表示的大小/pow(2,23)),数值为M*pow(2,E)=M*pow(2,pow(2,(8-1)+1+指数区值))

如1 01111111 00000000000000000000000为1*pow(2,0)=1.0

 

个人浅薄之见,如有不妥,还请纠正。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值