gpt4 book ai didi

c - 按位移位与十六进制值的 AND 运算之间的差异

转载 作者:行者123 更新时间:2023-11-30 20:46:55 24 4
gpt4 key购买 nike

如果我想将值的第 2 位设置为 0 ,以下两者有什么区别:

value = value & (1<<2);
value = value & 0x2;

最佳答案

当使用按位与时,您将清除掩码中未设置的所有位。所以你实际上只保留了一点。如果您只想清除一位,请将除您想要的位之外的所有位都设置为 1。您可以使用 ~运算符反转掩码中的所有位,如下所示:

value = value & ~(1<<2);
value = value & ~(0x2);

也就是说,这两个语句清除不同的位。在第一种情况下,1<<2计算结果为 4,即 000001000x04 。在第二种情况下,0x200000010 。它们的倒置是1111101111111101分别。

关于c - 按位移位与十六进制值的 AND 运算之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38152247/

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