論理ゲートとは? AND・OR・NOTで計算できるしくみ

約14分 · 更新: 2026年10月23日

論理ゲートは、0か1の入力を受け取り、決まった規則で0か1を出す小さな回路です。「両方1なら1」のAND、「どちらか1なら1」のOR、「反対にする」のNOTなどがあります。どれもトランジスタを数個から十数個つないで作ります。ゲートを組み合わせると、足し算も、CPUの複雑な計算もできます。

この記事でわかること

  • 論理ゲートが何をする回路か、6種類のゲート(NOT・AND・OR・NAND・NOR・XOR)の規則
  • スイッチの直列・並列とANDとORの関係
  • トランジスタ4個でNANDゲートができるしくみ
  • NANDだけでどんな回路も作れる理由と、ゲートの遅れがクロックの速さを決めるわけ

前提知識: 「トランジスタは電気で切り替えるスイッチ」「コンピュータは電圧の高い・低いを1と0に見立てる」の2つを知っていると読みやすくなります。

身近なところでは

電子レンジは、ドアが閉まっていて、しかもスタートボタンが押されたときだけ温めはじめます。車は、どれか1つでもドアが開いていれば、警告のランプをつけます。階段の照明は、上と下のどちらのスイッチでも、つけたり消したりできます。

この3つは、どれも「いくつかの条件から、するかしないかを決める」決まりです。1つ目は「両方そろったら」、2つ目は「どれか1つでも」、3つ目は「2つのスイッチの向きが同じか、違うか」です。このような決まりを、0と1で計算する小さな回路が論理ゲートです。

実際の電子レンジや車には、こうした判断をマイコン(小さなコンピュータのチップ)にさせているものも多くあります。そのマイコンの中も、論理ゲートの集まりです。

論理ゲートは「0と1の決まりを守る回路」

コンピュータの回路では、電圧が高い状態を1、低い状態を0とします。論理ゲートは、入り口(入力)で0か1を受け取り、出口(出力)から0か1を出します。入力の数は、1つのものも2つ以上のものもあります。どの入力でどの出力を出すかは、ゲートの種類ごとに決まっていて、変わりません。

ゲートの決まりは、表で書くとはっきりします。入力のすべての組み合わせと、そのときの出力を並べた表を真理値表と呼びます。入力が2つなら、組み合わせは00・01・10・11の4通りなので、表は4行で足ります。

なお、ここでの「ゲート」は、0と1を処理する回路の1単位のことです。トランジスタの電極(電気の出入り口)の1つも「ゲート」と呼びますが、別の意味です。

基本の3つ: NOT・AND・OR

NOT: 反対にする

NOTゲートは入力が1つだけで、0なら1を、1なら0を出します。入力をひっくり返すので、インバータ(反転するもの)とも呼ばれます。

入力ANOTの出力
01
10

AND: 両方1のときだけ1

ANDゲートは、入力が両方とも1のときだけ1を出します。1つでも0があれば0です。電子レンジの「ドアが閉まっている」かつ「ボタンが押された」の判断にあたります。

OR: どちらか1つでも1なら1

ORゲートは、入力のどちらか1つでも1なら1を出します。両方とも0のときだけ0です。車の「どれか1つでもドアが開いていたら警告」にあたります。

ABANDOR
0000
0101
1001
1111

ANDやORの入力は、2つとは限りません。3入力のANDなら、3つとも1のときだけ1を出します。

反転つきの仲間と、XOR

ANDの出力をNOTでひっくり返したものをNAND(ナンド)と呼びます。Not ANDを縮めた名前です。同じように、ORを反転したものがNOR(ノア)です。NANDは「両方1のときだけ0」、NORは「両方0のときだけ1」になります。

もう1つよく使うのがXOR(エックスオア)です。2つの入力が違うとき、つまり片方だけが1のときに1を出します。階段の照明は、このXORと同じ性質を使っています。どちらかのスイッチを切り替えると、2つの向きが「同じ」と「違う」の間で入れ替わり、明かりがついたり消えたりするからです。

ABNANDNORXOR
00110
01101
10101
11000

NANDの列は、さきほどのANDの列の0と1をすべて入れ替えたものです。NORの列も、ORの列を入れ替えたものになっています。

スイッチの直列と並列で考える

ANDとORは、電池と電球とスイッチの回路で考えるとイメージしやすくなります。スイッチを2つ一列につなぐ形を直列、2つの道に分けて並べる形を並列と呼びます。下の図で、スイッチを入れた状態を1、電球がつくことを1と読みかえてみてください。

スイッチの直列はAND、並列はORと同じ動きをする 直列: 両方入れるとつく(AND) 電池 A B 電球 並列: どちらか入れるとつく(OR) 電池 A B
上は直列、下は並列。図のスイッチはどれも切れた状態です。直列では両方を入れたときだけ、並列ではどちらか一方を入れれば電球がつきます。省略していること: 実際の回路図の記号、電球に流れる電流の大きさ。

直列では、電気はAとBの両方を通らないと電球まで届きません。そのため、両方を入れたときだけ電球がつきます。これはANDの真理値表と同じです。並列では、電気はどちらの道を通ってもよいので、どちらか一方を入れればつきます。これはORと同じです。

スイッチの回路と、0と1の論理の計算は対応しています。これを1930年代に論文にまとめたのが、のちに情報理論を作ったクロード・シャノンです。電話の交換機に使われていたリレー(電磁石で動くスイッチ)の回路を、式で整理して設計できることを示したのです。

トランジスタでゲートを作る

チップの中のゲートは、MOSFETというトランジスタで作ります。MOSFETは、ゲートの電極にかける電圧で、電流の通り道をつないだり切ったりするスイッチです。このしくみは「トランジスタとは?」で説明しています。

MOSFETには、正反対に動く2種類があります。nMOSは入力が1のときにつながり、pMOSは入力が0のときにつながります。この2種類を組み合わせてゲートを作る方式をCMOSと呼び、今のチップのほとんどがこの方式です。いちばん簡単なNOTゲートは、pMOSとnMOSを1つずつ、合わせて2個で作れます。

NANDゲートはトランジスタ4個

2入力のNANDゲートは、pMOS2個とnMOS2個、合わせて4個のトランジスタでできています。出力を1にする電源の+側には、pMOSを2つ並列につなぎます。出力を0にする0 Vの側には、nMOSを2つ直列につなぎます。

CMOSのNANDゲート: 上のpMOSは並列、下のnMOSは直列 電源の+側(1) pMOS pMOS 並列 A B 出力 nMOS nMOS A B 直列 両方1のときだけ 出力が0 Vの側と つながる 0 V(0)
左右と下の「A」「B」は、そのトランジスタを切り替える入力です。Aは左上のpMOSと上のnMOSに、Bは右上のpMOSと下のnMOSに入ります。省略していること: 実際の回路記号、入力の配線、チップの中での並び方。

AとBが両方とも1のときは、直列の2つのnMOSがどちらもつながります。出力は0 Vの側とつながって0になります。このとき2つのpMOSはどちらも切れています。

AかBのどちらかが0のときは、直列のnMOSのうち1つが切れるので、0 Vの側への道はなくなります。かわりに、0が入ったほうのpMOSがつながり、出力は電源の+側とつながって1になります。こうして「両方1のときだけ0」というNANDの決まりができあがります。

どの入力のときも、上と下のどちらか一方の道が必ず切れています。電源から0 Vの側へ電流が流れ続けないので、出力を保っている間はほとんど電力を使いません。これがCMOSのよいところです。

ANDはNANDより手間がかかる

CMOSでは、入力が1になるとnMOSがつながり、出力を0 Vの側へ引き下げます。そのため、pMOSとnMOSを上下に1組並べただけで作れるのは、入力が1になると出力が0に向かうゲートだけです。NOT・NAND・NORがこの形です。ANDはNANDの後ろにNOTをつけて、4個+2個の6個で作るのがふつうです。ORも同じで、NORにNOTをつけて作ります。

NANDだけで、どんな回路も作れる

NANDゲートには、おもしろい性質があります。NANDだけをたくさん組み合わせれば、NOT・AND・ORをはじめ、どんな決まりの回路でも作れるのです。このような性質を持つゲートを、万能なゲートと呼びます。

NANDだけでNOTとANDを作る NOTを作る: 2つの入力をつなぐ A Aの反対 NAND ANDを作る: NANDの後ろで反転 A B AND NAND NOTの役
半円の形に小さな丸がついた記号がNANDです。小さな丸は「反転する」という意味の印です。上は、NANDの2つの入力に同じ信号を入れてNOTにした形。下は、NANDの出力をもう1つのNANDで反転してANDにした形です。省略していること: ORやXORの作り方、トランジスタの数。

まず、NOTの作り方です。NANDの2つの入力に同じ信号Aを入れます。真理値表の「0と0」の行では出力が1、「1と1」の行では出力が0です。つまり、Aの反対が出てくるので、NOTとして働きます。

次に、ANDです。NANDは「ANDを反転したもの」なので、その出力をもう一度反転すれば、ANDに戻ります。反転には、今作ったNANDのNOTを使います。NANDを2個使えば、ANDができるわけです。

ORは、AとBをそれぞれNOTで反転してから、NANDに入れると作れます。AもBも0なら、反転して両方1になるので、NANDの出力は0です。それ以外のときは、反転した入力のどれかが0になり、出力は1です。これは「両方0のときだけ0」というORの決まりそのものです。このように「反転を組み合わせると、ANDとORを入れかえられる」という規則を、ド・モルガンの定理と呼びます。NOT・AND・ORが作れれば、どんな真理値表の回路も組み立てられます。

同じことは、NORゲートでも成り立ちます。1969年に月に着陸したアポロ宇宙船の誘導コンピュータは、この性質を利用しました。使ったIC(集積回路)は約2,800個で、そのほとんどが「3入力のNORゲートを2つ入れたIC」という1種類です。当時のICは新しく、使った実績がまだ少ない部品でした。高い信頼性が必要だったため、単純な1種類にそろえて、信頼性を確かめやすくしたのです。

ただし、今のチップをNANDだけで作るわけではありません。NANDだけでは、同じ働きの回路でも部品が増え、遅くもなりやすいからです。実際の設計では、NAND・NOR・NOTのほか、よく使う組み合わせを1つにまとめた部品を、目的に合わせて使い分けます。

ゲートを組み合わせて計算する

ゲートの出力を、次のゲートの入力につないでいくと、もっと複雑な決まりを作れます。たとえば、2進数の1桁どうしの足し算は、XORとANDを1つずつ並べるだけでできます。XORが「その桁の答え」を、ANDが「上の桁への繰り上がり」を出すのです。この回路を半加算器と呼びます。

半加算器を広げて何桁でも足せるようにする方法は、「コンピュータは0と1でどう計算するの?」で詳しく説明しています。また、論理回路シミュレーターでは、ゲートを並べてスイッチを切り替え、真理値表を作って確かめられます。「NANDだけでつくるXOR」の例も読み込めます。

足し算の回路のように、出力がそのときの入力だけで決まる回路を、組み合わせ回路と呼びます。一方、ゲートの出力を自分の入力に戻すようにつなぐと、前の状態を覚えておく回路も作れます。こちらは順序回路と呼ばれ、CPUの中で計算の途中の数を覚えておくのに使われます。2つの違いは「組み合わせ回路と順序回路の違い」の表で比べられます。

ゲートには「遅れ」がある

ゲートの入力を切り替えても、出力はその瞬間には変わりません。トランジスタが切り替わり、次のゲートの入力に電気をためるまで、少し時間がかかるからです。入力が変わってから出力が変わるまでの時間を、伝搬遅延と呼びます。

たとえば、部品として売られているNANDゲートのIC「74HC00」の説明書(データシート)を見てみます。電源4.5 Vで使い、決められた試験の条件で測った遅れは、標準で9ナノ秒(ナノは10億分の1)です。チップの中のゲートはずっと小さく、つなぐ先も近いので、遅れはピコ秒(1兆分の1秒)の単位になります。

CPUは、クロックという一定の間隔の合図に合わせて、計算を一歩ずつ進めます。1回の合図の間に、信号は何段ものゲートを順に通り、次の合図までに答えが落ち着いていなければなりません。そのため、通るゲートの数がいちばん多く、遅れがいちばん大きい道筋が、クロックをどこまで速くできるかを決めます。この道筋をクリティカルパスと呼びます。

数字で考えてみます。3 GHzのクロックなら、合図の間隔は約333ピコ秒です。説明のために1段の遅れを10ピコ秒とすると、つなげられるのは多くても約33段です。実際には、配線の遅れや、答えを覚える回路の時間も差し引く必要があります。配線の遅れのしくみは「時定数RCとは?」で説明しています。

よくある誤解

誤解: 論理ゲートは、手で切り替えるような小さなスイッチが中で動いている

実際は、動く部品はまったくありません。ゲートの中のトランジスタは、前のゲートが出した電圧によって、電気的につながったり切れたりします。人が切り替えるのは、キーボードのような入り口の部分だけです。チップの中では、ゲートの出力が次のゲートを切り替える連鎖が、1秒に何十億回もの速さで起きています。スイッチのたとえや、昔のリレー(電磁石で金属の接点を動かすスイッチ)の計算機のイメージから生まれやすい誤解です。

誤解: 0はちょうど0 V、1はちょうど1 V(または電源と同じ電圧)

実際は、0と1はそれぞれ電圧の「範囲」で決まっています。74HC00を電源4.5 Vで使う場合、入力は1.35 V以下なら0、3.15 V以上なら1と読まれます。その間の電圧は、どちらに読まれるか決まっていません。一方、出力は0なら0.1 V以下、1なら4.4 V以上を出すと保証されています(出力の電流が小さいとき)。たとえば1の出力は4.4 V以上なので、雑音で1.25 V下がっても、まだ1と読まれる3.15 Vに収まります。0の側も同じく1.25 Vの余裕があります。この余裕をノイズマージンと呼び、配線に雑音が少し乗っても0と1を読み違えないのはこのおかげです。チップの内部ではもっと低い電圧で動きますが、範囲で読むという考え方は同じです。

誤解: ANDやORが基本の部品で、NANDやNORはそれに部品を足した複雑なもの

実際は、CMOSのチップでは逆です。2入力のNANDとNORはトランジスタ4個で作れますが、ANDとORは反転のための2個を足して6個かかります。真理値表で習う順番(ANDが先、NANDが後)と、回路で作りやすい順番は同じではありません。

数字で見る

もの数
CMOSのNOTゲートトランジスタ2個
CMOSの2入力NAND・NORトランジスタ4個
CMOSの2入力AND・ORトランジスタ6個
IC「74HC00」1個2入力NANDゲート4個
アポロ誘導コンピュータ(1960年代)IC約2,800個(ほとんどがNORゲート2個入り)
インテル4004(1971年)トランジスタ約2,300個
Apple A17 Pro(2023年)トランジスタ約190億個

チップの設計では、回路の大きさを「2入力NANDゲート何個分」で表すことがあります。A17 Proの約190億個をNANDの4個で単純に割ると、約48億個分になります(当サイトのおおまかな計算)。ただし、実際のチップには、記憶のための回路など、ゲートとは形の違う部分もたくさんあります。この数は大きさの見当をつけるための目安です。

もっと詳しく学ぶ

次に読む

シリーズ「コンピュータのしくみ」の記事

  1. コンピュータは0と1でどう計算するの? 2進数と足し算の回路
  2. CPUとは? パソコンやスマホの中で何をしているのか
  3. なぜAIにGPUが使われるの? 大量の掛け算を同時にこなすしくみ
  4. OSとは? パソコンやスマホで何をしているソフトなのか
  5. キャッシュメモリとは? CPUがメモリを待たずに済むしくみ
  6. NPUとは? スマホやPCのAI専用回路のしくみ
  7. FPGAとは? あとから回路を書き換えられるチップのしくみ
  8. 文字コードとは? 文字化けが起きる理由とUTF-8
  9. ASICとは? 特定用途向けのチップとCPU・FPGAとの違い
  10. コンパイラとは? プログラムが機械語になるまで
  11. 論理ゲートとは? AND・OR・NOTで計算できるしくみ
  12. RISC-Vとは? 誰でも使える命令セットのしくみ
  13. アルゴリズムとは? 手順の工夫で計算が速くなるしくみ
  14. データベースとは? 表・SQL・インデックスのしくみ
  15. Gitとは? バージョン管理のしくみとGitHubとの違い

この分野の問題: 論理回路

参考にした資料

やさしい解説の一覧へ