入力ビットを反転させる 唯一の単項論理演算。0 は 1 に、1 は 0 になります。「成り立たない」を表現する基本演算です。
NOT 演算(否定)は、1 つの入力ビットをそのまま反転させる演算です。0 を 1 に、1 を 0 にひっくり返します。 AND/OR と違って入力が 1 つだけの単項演算です。
上のツールで A をタップすると、OUT は必ず反対の値になります。回路図ではゲートの後ろの小さな○が反転を意味します。
NOT は入力が 1 つしかない単項演算なので、真理値表のパターンはたった 2 行。シンプルです。
・NOT 0 = 1:0 をひっくり返して 1
・NOT 1 = 0:1 をひっくり返して 0
MIL 記号は三角形の先端に小さな○がついた形。三角形は「信号を通す」、○ は「反転」を意味します。他のゲートと NOT が組み合わさった図(例: AND の後ろに○)でも「○ = 反転」と捉えれば NAND/NOR の理解にもつながります。
日常で例えるなら「電気のスイッチ」。ON はもう一度押せば OFF、OFF を押せば ON。NOT を 2 回繰り返すと元に戻る(二重否定)のも、スイッチを 2 回押せば元の状態という感覚と同じです。
NOT はビットを反転させるのが基本の使い道です。単体で使うことも、他の演算と組み合わせて使うこともあります。
・全ビット反転 → 1 の補数:ビット列全体に NOT を適用すると、各桁の 0/1 がすべてひっくり返って 1 の補数になる。これに +1 すれば 2 の補数(負の数の表現)が得られる
・ビットマスクで 0 にするときの前段:「0 にしたい桁を 1 にしたマスク」を NOT で反転 → AND と組み合わせて使う典型パターン
・NAND・NOR の構成:AND/OR の出力に NOT をつけたものがそれぞれ NAND/NOR
・条件の反転(!演算子):プログラミングの !isReady のような書き方も、論理 NOT と同じ考え方
C 言語などでは ~(ビット単位 NOT、チルダ)と !(論理 NOT、ビックリマーク)の 2 種類があり、前者はビット列、後者は真偽値に使い分けます。いずれも「NOT は反転」という基本は同じです。