gpt4 book ai didi

c - 按位排除值

转载 作者:太空狗 更新时间:2023-10-29 17:27:18 24 4
gpt4 key购买 nike

如何

if (x == 1) printf("2\n");
else if (x == 2) printf("1\n");
else printf("0\n");

使用按位运算符?

我的尝试是:

for (x = 0; x < 8; x++) {
printf("%d\n", 0x03 & (0x03 ^ x));
}

输出:

3
2
1
0
3
2
1
0

期望的输出:

0
2
1
0
0
0
0
0

最佳答案

这很疯狂,但我终于想通了:

printf("%d\n", (3 & ~(x & 3)) & (0xfc >> (x << 1)));

关于c - 按位排除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110233/

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