FE EXAM

AND 演算(論理積)

両方のビットが 1 のときだけ結果が 1 になる論理演算。それ以外はすべて 0。「両方とも成り立つ」という条件を表現します。

INTERACTIVE VISUALIZATION
1 (true)
0 (false)
入力ビットをタップで切替
出力 (A AND B)
OUT
1
A=1B=1ANDOUT=1
TRUTH TABLE
ABA AND B
000
010
100
111
解説

📌
AND 演算とは

11AND1

AND 演算(論理積)は、2 つの入力ビットがどちらも 1 のときだけ結果を 1 にし、そうでなければ 0 にする論理演算です。 日常の言葉で言えば「A も B も成り立つ」という条件を表します。

上のツールで A と B をタップして切り替えると、出力 OUT がリアルタイムで連動します。1 と 1 の組み合わせだけが緑(1)になり、それ以外は灰色(0)です。

🔍
真理値表の見方

ABA AND B000010100111

真理値表とは、入力の全パターンに対する出力をまとめた表のことです。AND は入力が 2 つなので 2×2 = 4 パターンあり、覚え方は「1 が 2 つ揃ったときだけ 1」とシンプル。

0 AND 0 = 0:どちらも 0
0 AND 1 = 0:片方だけ 1(足りない)
1 AND 0 = 0:片方だけ 1(足りない)
1 AND 1 = 1:両方揃って初めて 1

日常の感覚で言えば「条件 A と条件 B の両方を満たす」というのと同じです。例えば「20 歳以上 AND 学生」のような複合条件。回路図の AND ゲートは MIL 記号で「D 字型」の形で表されます。

🛠
用途 — ビットマスクで 0 にするなど

AND の最大の活用シーンはビットマスクです。AND の「片方でも 0 なら必ず 0」という性質を使って、ビット列の特定の桁を狙い撃ちで操作できます。
特定ビットを 0 にする(クリア):消したい桁が 0 のマスクと AND を取ると、その桁が強制的に 0 になる。フラグの剥奪や、アドレスのアライメントに使う
欲しいビットだけを抽出:取り出したい桁だけ 1 のマスクと AND を取ると、その桁の値だけ残って他は 0 に。色情報からチャネルを分離するときなど
奇数/偶数の判定x AND 1 で最下位ビットだけ残せば、奇数なら 1・偶数なら 0

プログラミング言語のレベルでは、&(ビット単位 AND)と &&(論理 AND)の 2 種類が用意されています。前者はビット同士、後者は条件式同士に作用しますが、どちらも「両方が成立」という意味では共通しています。

関連コンテンツ

AND 演算 | Vizigo