int32 float 在32位内存中内容和布局

int32 float 在c++中同样都是32位,但是存储结构完全不同。

int32 先不说

 

 

float是这样表达的。关键词IEEE 754

float在内存中 分三部分 s+e+m

 

s  1位 0代表正数 1 负数

e  8位   代表 移多少位 

m 23位 是小数的具体数字  (24位最高位总为1,所以丢弃不存)

 

 

举例  45.25 转换到二进制

 

分两部分45 和 0.25

 

45二进制0010 1101

 

0.655二进制0.01

 

合在一起0010 1101.01

 

左移5位 才能达到第一位为1  变成1.0110101 * 2^5 

这个时候 m大概出来了 e和5 有关系 s和正负有关系

继续

1.0110101 去掉1 之后 0110101 补充0到23位 为 01101010000000000000000

正数所以s是0

e  左移动5位 5+127 = 132  如果是右移是-5+127   二进制是 10000100

 

三部分和一块  0     10000100     01101010000000000000000

这就是内存中的具体内容

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值