四个字节的浮点数表示的范围为什么比八个字节的整数范围大

        long型占用8个字节的存储空间,即64bit,最左边一位是符号位,0表示正,1表示负,其余63位存储数值,所以long型可以表示的数值范围为-263到263-1。而float型占用4个字节,即32bit,所表示的数值范围为-3.403E38到3.403E38,这个数值范围是要大于long型所表示的数值范围的。为什么会这样呢?要搞懂这个问题,就先要明白float型是如何存储的。

      如图,左边第一位为符号位,0表示正,1表示负。上图中sign为0,所以为正数。float型占用4个字节,即32位,其中1位为符号位,8位指数位,23位尾数位(尾数位代表的是小数点后的值,所以尾数位最大值为1)规定指数位从01111111(二进制)开始记,因为八位最大值为11111111(二进制)所以可得指数位最大代表2^127次方,而尾数位最大值约等于1所以可得float型可表示的范围约为2^()-127-----2^127方。

总结

       float型它有指数部分,规约数的指数可以表示到2的127次方,差不多是1038这么大。即我们知道哪个是符号位,哪些是指数部分,哪些是小数部分,以及省略的最高位的1,所以float型32个bit才能存下这么多信息。float的范围虽然大,但它不能表示他所在范围内的所有数字,而int就可以,所以float是以损失精度为代价扩大表示范围的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值