在C编程中改变位

7 c bit-manipulation bitwise-operators

我在C编程编码.假设我有一个字符:char letter = 0x0000; 所以字母的二进制数据现在是"00000000",假设我想将二进制数据更改为"10000000",稍后将其更改为"10010000",是否存在允许我更改"0"的按位运算符或方法在特定位置处为"1"或"1"至"0".这也可能吗?

tem*_*def 8

如果你用1位XOR任何位,它会切换它的值:

0 ^ 1 = 1
1 ^ 1 = 0
Run Code Online (Sandbox Code Playgroud)

类似地,如果您将任何位与0进行异或,则它保持相同的值:

0 ^ 0 = 0
1 ^ 0 = 1
Run Code Online (Sandbox Code Playgroud)

因此,您可以通过将数字与第0位除零的数字进行异或来翻转数字的第n位:

val ^= (1 << n);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!