浮点数表示问题

关于浮点数的表示:
关于为什么相同位数 ,int 精度范围更高,float表示范围更大的问题?
答:
int32 在内存中的分配是:1bit(符号位)31bits(实际数字位)
float 在内存中的分配情况是:1bit(符号位) 8bits(指数位) 23bits(尾数位)
int32 的实际数字位决定了int32的范围;
float的指数位决定了float的范围,因为有指数位,所以范围会比int类型大很多很多。float的尾数位决定了float的精度。

4bit 对应 十进制的 1位精度,所以按道理来说 float 23位尾数位 只能表示5 精度,但实际有6位精度,原因如下

在这里插入图片描述
在这里插入图片描述
例子:
8.25 在机器中存储形式过程:

转换为2进制为:1000.01
转换为科学计数法为:1.00001*2^3
所以:因为8.25为正 ,符号位为0,因为指数部分元数据为127,即首位为1,所以:
符号位:0
指数位:1000 0010
尾数位:0000 1000 0000 0000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值