float与double在内存中储存的形式





首先在计算机中,浮点数数据表达的方式为

1.xxxxxx*2^n

其中xxxxx就表示尾数部分n表示指数部分


float占用4字节,即32bit。由三部分构成,符号位,指数以及底数。

符号位:0或者1

指数位: -127~128,指数位采取移位储存的方式,即所储存的数据为元数据+127。

底数位:底数位为23bit,而事实上,因为高位永远是1省略不存,底数可以表达的精度为24bit的数据。


举例:

f = 14.25f = (1110.01)B = (1.11001*2^3)B
 所以符号位S = 0, T = 11001B, E = 3 = 11B
另外指数可以为负数,在C++中,是把指数加上127来存储的,即E= E+ 127 = 130 = 10000010B

在x86系统中,小端模式,因此在内存中的存储为0x00|00|64|41

double同理。

例子参考
感谢。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值