huiyongyu 2015-03-15 12:50 采纳率: 0%
浏览 1707

ieee754标准表示下内存的布局

IDE是vs2010下

int main()
{
int i=5;//i二进制=00000000 00000000 00000000 00000101
float f=i;//f二进制=(0)(1000000 1)(0100000 00000000 00000000),由IEEE754标准表float示法而来,
//()内依次为:符号, 阶码, 尾数
int ii=*(int *)&f;//ii二进制=f二进制=(0)(1000000 1)(0100000 00000000 00000000),
//()内依次为:符号, 阶码, 尾数
printf("%d,%d,%d",sizeof(int),sizeof(float),sizeof(int *));//4,4,4
printf("%d\n%d\n%d\n",i,f,ii);//printf后ii=1075052544,对应二进制=(0)(1000000 0001)(0100 00000000 00000000),
//符号, 阶码, 尾数,尾数后补32个0后刚好符号IEEE754标准Double类型

getchar();

}

我的疑问是f和ii在内存的二进制应该一样的才对啊

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-03-15 14:37
    关注

    int i=5;//i二进制=00000000 00000000 00000000 00000101
    这就不对,x86处理器是little endian的,应该是 00000101 00000000 00000000 00000000,你自己调试下。

    评论

报告相同问题?

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集