ex or回路は、デジタル回路やプログラミング、電子工作で頻繁に登場する基本的な論理回路です。
一般にはXOR回路、排他的論理和回路とも呼ばれ、二つの入力が異なるときだけ出力が1になる特徴を持ちます。
OR回路と名前が似ているため混同されがちですが、両方の入力が1の場合の出力が異なります。
本記事では、ex or回路の意味、論理式、真理値表、AND回路やOR回路との違い、代表的な活用例まで順を追って説明します。
ex or回路の意味と基本動作
それではまず、ex or回路の意味と出力の考え方について解説していきます。
XORと排他的論理和の意味
ex or回路とは、二つの入力信号を比べて、入力値が異なる場合だけ1を出力する論理回路です。
英語ではExclusive ORと表記され、その頭文字からXORと呼ばれます。
Exclusiveには排他的という意味があり、二つの条件のうち片方だけが成立している状態を表します。
日本語では排他的論理和と訳されますが、難しく考える必要はありません。
入力Aと入力Bが同じなら0、異なれば1という比較器のような働きと考えると理解しやすいでしょう。
たとえば二つのスイッチの状態が一致しているかどうかを確認したい場面で、XOR回路は役立ちます。
両方がオフ、または両方がオンなら一致しているため出力は0になります。
片方だけがオンなら状態が食い違っているため、出力は1です。
XOR回路の核心は、少なくとも一方が1ではなく、二つの入力が違うことにあります。
この違いを押さえると、OR回路との区別が明確になります。
入力と出力の組み合わせ
XOR回路は、通常二つの入力端子AとB、一つの出力端子Yで構成されます。
デジタル回路では0をオフや低電圧、1をオンや高電圧として扱います。
入力の組み合わせは四通りしかないため、動作を真理値表にすると全体像をすぐ確認できます。
| 入力A | 入力B | XOR出力Y | 入力の関係 |
|---|---|---|---|
| 0 | 0 | 0 | 一致 |
| 0 | 1 | 1 | 不一致 |
| 1 | 0 | 1 | 不一致 |
| 1 | 1 | 0 | 一致 |
この表から分かるように、XOR回路では1の個数が奇数のときに1が出力されます。
二入力XORでは、1が一つだけ含まれる状態が該当します。
入力数を増やした多入力XORでも、入力された1の数が奇数なら1、偶数なら0という性質が引き継がれます。
この性質はパリティチェックやエラー検出の基礎になる重要な考え方です。
回路記号と読み方
XOR回路の回路記号はOR回路の形に似ていますが、入力側にもう一本の曲線が加わる形で描かれます。
この追加された曲線が、通常のOR回路と区別する目印です。
回路図を見る際は、ORゲートの入力側に二重の曲線があるかを確認するとよいでしょう。
回路記号の近くにはXOR、EX-OR、⊕などの記号が記載される場合もあります。
論理回路の資料では、A XOR B、A ⊕ B、A⊻Bのように複数の書き方が使われます。
表記が違っても、二つの値が異なるときに1になるルールは同じです。
なお、XORの否定はXNOR回路と呼ばれます。
XNOR回路は入力が一致すると1を出すため、一致判定回路として利用されます。
論理式と真理値表の読み取り
続いては、ex or回路を論理式と真理値表で表す方法を確認していきます。
基本論理式の表し方
二入力のXOR回路は、AとBのどちらか一方だけが1である条件を式にしたものです。
論理式では、次のように表せます。
Y = A ⊕ B
Y = A・Bの否定 と Aの否定・B の論理和
記号の読み方として、・はAND、論理和はOR、否定はNOTを意味します。
文章で書くと、Aが1でBが0の場合、またはAが0でBが1の場合にYが1となります。
XORは一つの演算子として扱われることが多いものの、AND回路、OR回路、NOT回路の組み合わせでも実現できます。
この点は、論理回路の設計や論理式の変形を学ぶうえで大切です。
XORは独立した考え方でありながら、基本ゲートへ分解できるという特徴を持ちます。
真理値表から求める手順
真理値表は、すべての入力パターンと出力結果を一覧化した表です。
二つの入力なら二の二乗で四通り、三つの入力なら二の三乗で八通りの組み合わせを確認します。
XOR回路の表を作るときは、まず入力AとBを0と1で規則的に並べます。
次に入力が一致しているか、不一致かを一行ずつ判定します。
不一致の行だけ出力欄へ1を書けば完成です。
| 判定順 | A | B | 同じかどうか | Y |
|---|---|---|---|---|
| 一行目 | 0 | 0 | 同じ | 0 |
| 二行目 | 0 | 1 | 異なる | 1 |
| 三行目 | 1 | 0 | 異なる | 1 |
| 四行目 | 1 | 1 | 同じ | 0 |
真理値表を使えば、複雑な論理式でも入力ごとの正しさを検証できます。
電子回路の問題だけでなく、プログラムの条件分岐を整理するときにも便利な方法です。
二進数演算としてのXOR
XORは、二進数の各桁を比較して計算する演算としても使われます。
計算ルールは、同じ桁なら0、異なる桁なら1です。
二進数の0101 XOR 二進数の0011 = 二進数の0110
左から順に比較すると、0と0は0、1と0は1、0と1は1、1と1は0になります。
この演算では繰り上がりが発生しません。
そのため加算とは異なる処理ですが、二進数の足し算で和の下位桁を求める役割も担います。
コンピュータ分野では、ビット演算子としてXORが実装されています。
プログラミング言語によって演算子は異なりますが、排他的論理和の基本ルール自体は変わりません。
暗号化、チェックサム、フラグの反転などに活用されるため、XORはハードウェアとソフトウェアをつなぐ演算ともいえます。
AND回路とOR回路との違い
続いては、ex or回路とAND回路、OR回路の出力条件の違いを確認していきます。
AND回路との比較
AND回路は、すべての入力が1のときだけ1を出力する論理回路です。
二入力AND回路では、AとBがともに1の行だけ出力が1になります。
XOR回路は両方が1のときに0を出すため、ここが最も大きな違いです。
| 入力A | 入力B | AND | XOR |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
AND回路は、複数の条件をすべて満たしたときだけ処理を進める用途に向いています。
一方のXOR回路は、二つの状態の違いを検出したい場合に適しています。
たとえば安全装置で二つの許可信号が同時に必要ならAND回路が有効です。
二つのセンサーの結果が食い違ったことを検知するなら、XOR回路が候補になります。
OR回路との比較
OR回路は、入力のどちらか一方、または両方が1なら1を出力します。
XOR回路とOR回路は、入力が01と10のときには同じ出力になります。
違いが現れるのは、入力が11のときです。
OR回路は1、XOR回路は0を出力します。
OR回路は一つ以上が1なら出力1です。
XOR回路は一つだけが1なら出力1です。
この違いを言葉だけで覚えるより、真理値表の最終行を比べると理解しやすくなります。
ORは複数の要求のいずれかを受け付ける場面に向きます。
XORは二つの選択肢が同時に選ばれていないことを確認する場面で活躍します。
両方が成立したときに何を出すかが、ORとXORを見分ける重要な基準です。
NOT回路を含めた論理回路の関係
NOT回路は、入力0を1に、入力1を0に反転させる回路です。
XOR回路はAND、OR、NOTを組み合わせて作れるため、基本論理ゲートの応用例として学ばれます。
まずAを反転した信号とBをANDで結びます。
次にBを反転した信号とAをANDで結びます。
最後に二つのAND出力をORでまとめると、XORと同じ結果になります。
入力Aが1で入力Bが0の場合は、A・Bの否定の項が1になります。
入力Aが0で入力Bが1の場合は、Aの否定・Bの項が1になります。
それ以外では両方の項が0となり、出力も0です。
この構成を理解すると、XOR専用ICがない場合に代替回路を考える力も身につきます。
論理式と回路図を行き来しながら確認すると、デジタル回路への理解が深まるでしょう。
加算器と比較回路における活用
続いては、ex or回路が加算器や比較回路で果たす役割を確認していきます。
半加算器における和の出力
半加算器は、一桁の二進数を二つ加算する基本回路です。
入力AとBを足したとき、和の下位桁はXOR回路で求められます。
繰り上がりはAND回路で求められる構成です。
| A | B | 和 | 繰り上がり |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
1と1を加算すると二進数では10になります。
このとき下位桁は0になるため、XORの出力と一致します。
上位桁へ送る1は、両入力が1であることを検出するAND回路が出力します。
XORは加算結果の和、ANDは繰り上がりという役割分担が半加算器の基本です。
複数桁の計算を行う全加算器でも、XOR回路は重要な部品として組み込まれています。
一致と不一致の判定
XOR回路は、二つのビットが異なることを直接示せるため、不一致検出に適しています。
二つのデータをビット単位でXOR演算し、出力のどれかが1なら、元のデータには違いがあります。
逆に、すべての出力が0なら各ビットが一致しています。
ただし一致そのものを1で出力したい場合には、XORの出力をNOT回路で反転したXNOR回路を使う方法が一般的です。
製造装置のセンサー比較、データ伝送の照合、入退室システムの状態確認などで、この考え方が応用されます。
複数の配線や信号を比較するときは、どのビットの不一致を見つけたいのかも設計上のポイントです。
単純な比較でも、入力数や異常時の扱いによって必要な回路構成は変化します。
パリティチェックとエラー検出
パリティチェックは、送信するデータに含まれる1の数が偶数か奇数かを利用して、通信エラーを見つける方法です。
たとえば偶数パリティでは、データとパリティビットを合わせた1の数が偶数になるようにします。
受信側でXOR演算を行い、期待した偶奇と異なる結果が出れば、途中でビットが変化した可能性があります。
パリティチェックは、すべての誤りを見つけられる仕組みではありません。
一度に偶数個のビットが反転した場合は検出できないことがあります。
それでも回路が比較的シンプルで、基本的な異常検出として広く使われてきました。
多入力XORの、1の数が奇数なら1になる性質がここで生かされます。
通信や記憶装置の信頼性を考える際には、検出できるエラーとできないエラーを区別して理解することが大切です。
プログラミングと電子工作での扱い
続いては、ex or回路をプログラミングや電子工作で利用する場面を確認していきます。
ビット演算としてのXOR
多くのプログラミング言語では、XORはビット演算として利用できます。
二つの整数を二進数に展開し、対応するビット同士へXORのルールを適用します。
たとえば二進数1010と1100をXOR演算すると、結果は0110です。
ビット単位の操作は抽象的に見えるかもしれませんが、フラグ管理やデータ処理では実用的です。
あるビットを反転したい場合、該当する位置だけが1の値とXORを取る方法があります。
同じマスク値を二回XORすると元の値へ戻る性質もあります。
この性質は便利ですが、可読性が下がる実装になる場合もあるため、用途を明確にして使うことが望ましいでしょう。
XOR演算は同じ値を二回適用すると元に戻るという特徴を持ちます。
LEDとスイッチによる動作確認
電子工作では、二つのスイッチをXORゲートICへ接続し、出力にLEDをつなぐと基本動作を確認できます。
二つのスイッチが異なる状態のときにだけLEDが点灯すれば、XOR回路の働きを視覚的に理解できます。
部品を接続する際は、使用するICの電源電圧、GND端子、入力端子の扱いをデータシートで確認してください。
未接続の入力端子は状態が不安定になりやすく、意図しない出力の原因になります。
プルアップ抵抗やプルダウン抵抗を使い、入力を確実に0または1へ固定することが重要です。
LEDには電流制限抵抗も必要になります。
単に点灯するかだけでなく、四通りの入力組み合わせをすべて試すと、真理値表との対応を確認できます。
排他的な選択条件への応用
XOR回路は、二つの選択肢のうち片方だけを有効にしたい条件を表す際に使えます。
たとえば正転と逆転の指令が同時に出ていないかを確認する回路では、二つの状態の違いを判断する必要があります。
ただし安全性が関わる制御回路では、XORだけで保護機能を完結させる設計は適切ではありません。
異常時の停止方法、信号断線時の状態、チャタリング対策、フェイルセーフ設計まで検討する必要があります。
家庭用の簡単な電子工作と産業用制御では、求められる信頼性が大きく異なります。
XORを使う目的が不一致の検出なのか、片方だけの選択なのかを最初に整理すると、回路構成を決めやすくなります。
論理式が正しくても、実機では入力の不安定さや配線条件への配慮が必要です。
ex or回路を理解するためのまとめ
ex or回路は、二つの入力が異なるときだけ1を出力する排他的論理和回路です。
入力が11のときにも1となるOR回路とは、この点で明確に区別できます。
AND回路は両方が1のときだけ1となり、XOR回路は片方だけが1のときに1となります。
真理値表では、00と11で0、01と10で1になる並びを押さえると基本動作を覚えやすいでしょう。
論理式ではA ⊕ Bと表せるほか、AND、OR、NOTの組み合わせへ分解することも可能です。
半加算器では和の出力、比較回路では不一致の検出、パリティチェックではエラー検出に利用されます。
プログラミングではビット演算、電子工作ではスイッチ状態の判定としても活用できます。
XORは異なるかどうかを判定する回路と捉えることで、論理式や応用回路の意味を整理しやすくなります。