asksg 2021-07-08 15:39 采纳率: 87.5%
浏览 9
已采纳

共用体,为什么结果是-2,-2,-1

img

  • 写回答

1条回答 默认 最新

  • include_iostream_ 2021-07-08 15:46
    关注

    四字节int下,-2的补码是0xFFFFFFFE(补码是反码加1。例如2,二进制是00000000 00000000 00000000 00000010,反码就是11111111 11111111 11111111 11111101,也即二进制形式所有位全部取反;加上1的结果是11111111 11111111 11111111 11111110,换算成十六进制就是 0xFFFFFFFE)。那么,由于intel机器是小端序,其存储结构从低地址写出来就是FE FF FF FF。a.a显然是-2本身,不必多说。a.c[0]作为8位有符号整数看待,就是0xFE作为整数,我们从补码找回原值(既然补码是反码加1,原值自然是补码减1再取反。注意:非负整数的原码、反码、补码是一致的),得到-2。a.c[1]是0xFF,作为8位整数看待,就是-1的补码咯。因此,结果是-2 -2 -1。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 simulink单相桥式整流电路
  • ¥35 问问51单片机流水灯的代码该怎么写
  • ¥15 关于#百度#的问题:感觉已经将字体段落、字体、页边距、纸张大小、文档网络调成与论文模板一致,为什么黄色部分字体左右的间距还是不一样啊,求私信发文件接收看一下
  • ¥15 stata webuse报错
  • ¥15 TypeError: Cannot read properties of undefined (reading 'status')
  • ¥15 如何利用AI去除图片中的竹架子
  • ¥15 python 写个基金爬取的代码,自动卖出功能
  • ¥15 Linux系统启动不起来
  • ¥15 为什么运行仿真数码管不亮(语言-c语言)
  • ¥15 陈仁良《直升机飞行动力学》小扰动线化方程如何推导