gpt4 book ai didi

在一行 C 中组合设置、清除和切换

转载 作者:太空狗 更新时间:2023-10-29 15:23:42 24 4
gpt4 key购买 nike

我试图在一行 C 中组合三位操作。对于 8 位字符,我必须设置位 2、4、6;在 C 的一行代码中清除位 1、3、7 并切换位 0 和 5。我可以在三行中完成这些,但我不能将它们组合起来。以下是我到目前为止所做的:

x= x & 0xD5;
x = x | 0x51;
x = x ^ 0x84;

他们给出给定 x 值的正确答案。但是我试过了

x = (x & 0xD5) | (x | 0x51) | (x ^ 0x84)

x = x & 0xD5 | 0x51  ^ 0x84

那些不起作用。任何建议将不胜感激。

最佳答案

就是这样

x = (((x & 0xD5) | 0x51) ^ 0x84)

你的第一次尝试是错误的,因为 x 的值没有更新,所以所有的操作都在同一个值上进行,此外,对值进行或运算并不等同于将操作结果分配给 x

第二个是错误的,因为 or 运算符优先,所以你只需要括号。

关于在一行 C 中组合设置、清除和切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34980622/

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