我在 C 编程中编码。
假设我有一个角色:
字符字母=0x0000;
所以字母的二进制数据现在是“00000000”
假设我想将二进制数据更改为“10000000”,然后将其更改为“10010000”,是否有位运算符或方法可以让我将“0”更改为“1”或“1”更改为“0"在特定位置。这也可能吗?
最佳答案
如果将任何位与 1 位异或,它会切换其值:
0 ^ 1 = 1
1 ^ 1 = 0
同样,如果将任何位与 0 进行异或,它会保持相同的值:
0 ^ 0 = 0
1 ^ 0 = 1
因此,您可以通过将一个数字与一个除第 n 位以外的其他地方都为零位的数字进行异或来翻转数字的第 n 位:
val ^= (1 << n);
希望这可以帮助!
关于C 编程中的一点改变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19610236/