7

私はCプログラミングでコーディングしています。キャラクターがあるとしましょう: char letter=0x0000; したがって、文字のバイナリデータは「00000000」になり、バイナリデータを「10000000」に変更し、後で「10010000」に変更したいとします。「0」を変更できるビット演算子またはメソッドはありますか特定の位置で「1」または「1」から「0」に。また、これは可能ですか?

4

3 に答える 3

9

任意のビットを 1 ビットで XOR すると、その値が切り替わります。

0 ^ 1 = 1
1 ^ 1 = 0

同様に、任意のビットを 0 で XOR すると、同じ値が保持されます。

0 ^ 0 = 0
1 ^ 0 = 1

したがって、ビット n 以外のすべてのビットがゼロである数値と XOR することで、数値の n 番目のビットを反転できます。

val ^= (1 << n);

お役に立てれば!

于 2013-10-26T18:25:01.267 に答える