| ~a | # | ビット反転 | |||
| a | & | b | # | AND:論理積(aもbも1のビットが1) | |
| a | | | b | # | OR:論理和(aまたはbが1のビットが1) | |
| a | ^ | b | # | XOR:排他的論理和(aまたはbが1のビットが1) | |
| a | << | b | # | b ビット左シフト | |
| a | >> | b | # | b ビット右シフト |
はじめに簡単なまとめ
ビット反転 (
~a): 0を1に、1を0に変える。AND (
a & b): 両方とも1のビットが1になる。OR (
a | b): どちらか一方でも1のビットが1になる。XOR (
a ^ b): どちらか一方が1のビットが1になりますが、両方1のビットは0になる。左シフト (
a << b): 数字を2倍にする。右シフト (
a >> b): 数字を半分にする。ビット演算子
ビット演算は、コンピュータが数字を二進数(0と1の組み合わせ)として扱う方法。
その0と1の組み合わせを操作する方法。
1. ビット反転 (~a)
これは、0を1に、1を0に変える操作。
- 例:
aが1010(10進数で10)の場合、~aは0101(10進数で5)になる。
2. AND演算 (a & b)
これは、二つの数字のビットが両方とも1の場合だけ1になる。
- 例:
aが1010(10)で、bが1100(12)の場合、a & bは1000(8)になる。
3. OR演算 (a | b)
これは、二つの数字のビットのどちらか一方でも1なら1になる。
- 例:
aが1010(10)で、bが1100(12)の場合、a | bは1110(14)になる。
4. XOR演算 (a ^ b)
これは、二つの数字のビットのどちらか一方が1なら1になりますが、両方が1の場合は0になる。
- 例:
aが1010(10)で、bが1100(12)の場合、a ^ bは0110(6)になる。
5. 左シフト (a << b)
これは、数字のビットを左に動かし、右側に0を追加します。数字を2倍にする操作。
- 例:
aが1010(10)の場合、a << 1は10100(20)になる。a << 2なら101000(40)になる。
6. 右シフト (a >> b)
これは、数字のビットを右に動かし、左側に0を追加します。数字を半分にする操作。
- 例:
aが1010(10)の場合、a >> 1は0101(5)になる。a >> 2なら0010(2)になる。
まとめ
- ビット反転 (
~a): 0を1に、1を0に変える。 - AND (
a & b): 両方とも1のビットが1になる。 - OR (
a | b): どちらか一方でも1のビットが1になる。 - XOR (
a ^ b): どちらか一方が1のビットが1になりますが、両方1のビットは0になる。 - 左シフト (
a << b): 数字を2倍にする。 - 右シフト (
a >> b): 数字を半分にする。


