gpt4 book ai didi

在 C 中更改 int 中的位?

转载 作者:太空狗 更新时间:2023-10-29 14:57:34 25 4
gpt4 key购买 nike

所以我有一个 16 位数字。假设它的变量名是 Bits。我想让 Bits[2:0] = 001、100 和 000,而不更改任何其他内容。我不知道该怎么做,因为我能想到的就是对我想成为 1 和 1 的位进行 ORing,但我不确定如何清除其他位以使它们为 0。如果有人有建议,我将不胜感激。谢谢!

最佳答案

要清除某些位,& 与要清除的位的倒数。然后你可以|你想要的位。

在这种情况下,您希望将低三位清零(二进制为 111 或十进制为 7),因此我们 &使用 ~7 清除这些位。

Bits = (Bits & ~7) | 1; // set lower three bits of Bits to 001

关于在 C 中更改 int 中的位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15915198/

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