Java | ビット演算子とシフト演算子

Java Java
スポンサーリンク

要点まとめ

ビット演算子(整数を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() で結果を出してみると直感的に覚えられます。

タイトルとURLをコピーしました