可乐加冰加两块 2022-01-01 14:52 采纳率: 94.1%
浏览 40
已结题

为什么会输出这些结果??是怎么得到的?

img


为什么会输出这些结果?是怎么得到的?希望得到解答
为什么输出结果不同?

  • 写回答

1条回答 默认 最新

  • a5156520 2022-01-01 19:23
    关注

    是这样的,union联合里面的变量共用一段相同的内存,如果往里面写数据是在一段内存上写,读也是,具体是这样的:
    test.i = 0x12345678 ,32位, 二进制是:0001 0010 0011 0100 0101 0110 0111 1000
    然后以十六进制打印int长度的数据就是:12345678


    打印一个字节的字符就是打印前面那个二进制串的后面八位,十进制是120,对应的ASCII码正好是 'x'


    打印一个2个字节的short就是二进制串后面16位,十六进制是5678


    然后给里面的字符变量c赋值,就是往这个内存的后面8位写入'A‘字符的对应的二进制值-- 0100 0001,
    这个二进制串就变为:0001 0010 0011 0100 0101 0110 0100 0001


    同理,打印int长度就是打印这全部32位,对应十六进制是12345641


    打印一个字符长度8位,就读取这个二进制串后面8位,对应ASCII码 'A'


    打印16位的short,就读取这个二进制串后面16位,对应十六进制是:5641

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

报告相同问题?

问题事件

  • 系统已结题 3月11日
  • 已采纳回答 3月3日
  • 创建了问题 1月1日

悬赏问题

  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等