要点まとめ
ビット演算子(整数を2進数で扱う演算)
整数を ビット単位(0と1) で処理するための演算子です。
| 演算子 | 名前 | 動作のイメージ |
|---|---|---|
& | AND(論理積) | 両方が1なら1、それ以外は0 |
| | | OR(論理和) | どちらかが1なら1 |
^ | XOR(排他的論理和) | 片方だけ1なら1、両方同じなら0 |
~ | NOT(反転) | 0を1に、1を0に反転 |
👉 例:
int a = 85 & 15; // AND → 5
int b = 85 | 15; // OR → 95
int c = 85 ^ 15; // XOR → 90
int d = ~85; // NOT → -86
Javaシフト演算子(ビットを左右にずらす)
数値を 2進数のビット単位でシフト します。
| 演算子 | 名前 | 動作のイメージ |
|---|---|---|
<< | 左シフト | 左にずらす(2倍, 4倍, …になる) |
>> | 右シフト(符号あり) | 右にずらす(2で割るイメージ、符号は保持) |
>>> | 右シフト(符号なし) | 右にずらす(空いた左側は必ず0で埋める) |
👉 例:
int x = 21 << 2; // 左に2ビット → 84
int y = 21 >> 2; // 右に2ビット → 5
int z = -92 >> 2; // 符号あり右シフト → -23
int w = -92 >>> 2; // 符号なし右シフト → 大きな正の数
Javaポイント
- ビット演算子は「フラグ管理」や「低レベル処理」でよく使われる
- シフト演算子は「高速な掛け算・割り算」や「ビットマスク処理」に便利
- 初心者はまず
&,|,^,~と<<,>>を理解すればOK
こういう演算は普段のアプリ開発ではあまり出てこないけど、効率的な処理や暗号・画像処理などでは必須の知識です。
👉 もっと理解を深めたいなら、実際に System.out.println() で結果を出してみると直感的に覚えられます。
