在C中更改int中的位?

use*_*332 5 c int bit

所以我有一个16位数.假设它的变量名是Bits.我想让Bits [2:0] = 001,100和000,而不改变其他任何东西.我不知道该怎么做,因为我能想到的是ORing我希望与1成为1的位,但我不知道如何清除其他位以使它们为0.如果有人有建议,我很感激.谢谢!

nne*_*neo 6

要清除某些位,请清除要&反转的位.然后你可以|在你想要的位.

在这种情况下,你要零出低三位(111二进制或7十进制),所以我们&~7清除这些位.

Bits = (Bits & ~7) | 1; // set lower three bits of Bits to 001
Run Code Online (Sandbox Code Playgroud)