整数和浮点数在内存中的存储

整数的存储

整数在内存中以二进制补码的形式存储–将输入的整数转化为二进制后取反码后加一得到补码,正数的原码,反码,补码相同

浮点数的存储

浮点数和整数在内存中存储方式不同,浮点数在内存中的存储就是S.M.E相关的值
[] [][][][][][][][] [][][][][][][][][][][][][][][][][][][][][][][]
S(1bit) M(8bit) E(23bit)
对于32位浮点数(float),最高位存储符合位S,接着8位存储指数E剩下23位存储有效数字M
[] [][][][][][][][][][][] [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
S(1bit) M(11bit) E(52bit)
[][][][][][][]
对于64位浮点数(double),最高位存储符合位S,接着11位存储指数E剩下52位存储有效数字M

S–符号位
M–小数点后的数字 1<=M<2
E–小数点前的数组 是无符号整数
为防止E有些情况下是负数,E在存入内存时必须加上一个中间数
对于8位的E中间数的127
对于32位的E中间数的1023
若要存储一个为V的浮点数:
V=(-1)^S * M *2^E
例如:
V=5.5
=(-1)^0 * 1.011 * 2^2
S=0 M=1.011 E=2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值