gpt4 book ai didi

c - 为什么不输出 'Junk' ?

转载 作者:行者123 更新时间:2023-11-30 20:44:35 26 4
gpt4 key购买 nike

所以我把这个 union 称为垃圾。它保存一个 int 或一个 char[4] 数组...您可能知道我正在尝试做什么。我将字母 J、u、n 和 k 的 ASCII 值放入 int 中,其中 J 放入第一个字节,u 放入第二个字节,依此类推。我这样做是因为我的机器是小端字节序,并且我期望包含 J 的字节是我的 int 中最左边的字节,它应该与 numc[0] 相对应。但我没有得到任何输出。那么出了什么问题呢?

#include <stdio.h>

union Junk {
int num;
char numc[4];
};

int
main(int argc, char ** argv){
union Junk len;
len.num = 74; //J
len.num &= 117 << 8; //u
len.num &= 110 << 16; //n
len.num &= 107 << 24; //k
putchar(len.numc[0]);
putchar(len.numc[1]);
putchar(len.numc[2]);
putchar(len.numc[3]);
putchar('\n');
return 0;
}

最佳答案

您可以使用 &= 而不是 |= 来设置位。由于 & 的操作数没有重叠位,因此您只需将 len 数字设置为零即可。

关于c - 为什么不输出 'Junk' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25800965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com