【論理演算と論理回路】各種回路の種類とビット演算〜半加算器と全加算器

【論理演算と論理回路】各種回路の種類とビット演算〜半加算器と全加算器
ハテオ君

論理演算と論理回路の仕組みがあまり理解できていないだよなぁ。そろそろ頭がパンクしそう。

今回はこの悩みを解決していきます。

本日の記事テーマ

論理演算と論理回路の基礎知識~各種類まで徹底解説!

コンピューター内部で行う計算では、演算が使われています。そんな演算の処理で使われるのが、論理演算と論理回路。

コンピューター内部がどのように演算されているのか理解するためにはこの2つを理解する必要があります。

なので、今回の記事で基礎知識を身につけていきましょう。

本日の記事内容

  • リスト
  • 論理演算と論理回路の基礎知識と種類
  • ビット演算(マスクパターン)
  • 半加算器と全加算器

記事の最後には、今回の内容に関しての確認問題も用意していますので、インプットとアウトプットとしても是非活用してみてください。

元中卒の私が誰でも理解できるように解説していきます。

それではいって参りましょう。

黄島 成

論理演算と論理回路の基礎知識と種類

論理演算と論理回路の基礎知識と種類

コンピュータ内部は、電気信号の「ON」と「OFF」を1(真)と0(偽)に対応させ、情報を処理や計算(演算)を行っている。

  • 1と0という2つの値を扱う演算を論理演算と呼ぶ。
  • 論理演算を実際に行う電子回路のことを論理回路と呼ぶ。

CPUには、論理演算を行うための論理回路が組み込まれています。

論理回路はMIL記号で図式化したり、入力の状態とそのときの出力の状態を表にまとめた真理値表で表したりします。

ベン図で考えると一層理解しやすくなります。

基本回路の種類

3つの演算を行う回路を基本回路と呼ぶ。

基本回路の種類は以下3つ

  • リスト
  • リ論理和回路(OR)
  • 論理積回路(AND)
  • 否定回路(NOT)

順番に詳しく見ていきましょう。

論理和回路(OR回路)

入力(A,B)の少なくとも一方が1であれば、出力(A+B)は1になる回路です。
”+”は論理和を表します。

論理和回路(OR回路)図

論理積回路(AND回路)

入力(A,B)の両方が1であれば、出力(A・B)は1になる回路です。
”・”は論理積を表します。

論理積回路(AND回路)図

否定回路(NOT回路)

入力(A)が0であれば出力(A-)は1、入力(A)が1であれば出力(A-)は0になる回路です。
” A - ”は A の否定を表します。

否定回路(NOT回路)

基本回路の組み合わせ

基本回路を組み合わせた論理回路として、3つの種類があります。

基本回路の組み合わせは以下3つ

  • 排他的論理和回路(EOR、XOR)
  • 否定論理和回路(NOR回路)
  • 否定論理積回路(NAND)

順番に詳しく見ていきましょう。

排他的論理和回路(EOR 回路、または XOR 回路)

入力(A、B)が異なれば、出力(A⊕B)は1になる回路です。
” ⊕”は排他的論理和を表します。

排他的論理和回路(EOR 回路、または XOR 回路)図①

また、排他的論理和は、A・BA・Bの式で表すことができ、論理和と論理積、否定の組 み合わせで実現することができます。

排他的論理和回路(EOR 回路、または XOR 回路)図②

否定論理和回路(NOR回路)

否定論理和は、論理和と否定の組み合わせで実現しています。
NOT(AORB)の意味になります。

否定論理和回路(NOR回路)図

否定論理積回路(NAND回路)

否定論理積は、論理積と否定の組み合わせで実現しています。
NOT(AANDB)の意味になります。

否定論理積回路(NAND回路)図

ビット演算(マスクパターン)

ビット演算(マスクパターン)

「元のビット列」と「特定のビット列」とのあいだでビット演算を行い、ある特定のビットを取り出したり、反転させたりすることができます。このときの、「特定のビット列」をマスクパターン(または単にマスク)と言います。

例として、2進数8ビット「00110001」の下位4ビットの操作をしてみましょう。

下位4ビットを操作するには、下位4ビットに1、それ以外のビットに0を入れたビット列 「00001111」をマスクパターンとして使います。

ビット列の取り出し

特定のビットを取り出すには、元のビット列とマスクパターンとのあいだで論理積(AND) をとります。

では、下位4ビットを取り出してみましょう。

ビット列の取り出し図

論理積を用いた論理演算は、IPアドレスとサブネットマスクの処理などに用います。

ビットの反転

特定のビットを反転させるには、元のビット列とマスクパターンとのあいだで排他的論理 和(EOR)をとります。

では、下位4ビットを反転させましょう。

ビット反転図

排他的論理和を用いた論理演算は、パリティ符号や暗号化の処理などに用います。

半加算器と全加算器

半加算器と全加算器

基本的な論理回路の組み合わせで、加算を実現する回路を作ることができます。
2進数の加算を行う回路を、加算器と呼ぶ。

加算器には以下2種類に分類されます。

  • 半加算器
  • 全加算器

順番に詳しく見ていきましょう。

半加算器

2進数1桁の加算をするには、4パターンがあります。

半加算器図①

半加算器は、加算結果の1桁目(Sum)と加算結果の桁上がり(Carry)の値を保持します。ただし、下位桁からの桁上がりを考慮しないため、最下位桁で用いられます。

半加算器図②

半加算器は入力(X,Y)と出力(C,S)からなり、次のような真理値表になります。

半加算器③

加算結果の桁上がり(C)は、入力(X,Y)が両方1のときのみ出力は1になっているので論 理積、加算結果の1桁目(S)は、入力(X,Y)が異なるときのみ出力は1になっているの で、排他的論理和であることがわかります。

半加算器は、論理積と排他的論理和の組み合わせによって実現しています。

半加算器④

全加算器

全加算器は、上位桁への桁上がり(C)だけでなく、下位桁からの桁上がり(C‘)も考慮して いるため、最下位桁以外の桁で用いられています。

全加算器は、入力(X,Y,C)と出力 (C,S)からなり、次のような真理値表になります。

全加算器①

全加算器は半加算器と論理和の組み合わせによって実現します。

全加算器②

まとめ

【論理演算と論理回路】各種回路の種類とビット演算〜半加算器と全加算器 まとめ

計測と制御については上記内容で以上となります。

それではまず今回の内容をまとめていきましょう。

まとめ

  • 1と0の2つの値を扱う演算が論理演算と呼ぶ。
  • 論理演算を使う電子回路を論理回路と呼ぶ。
  • 論理回路には3つの基本回路と3つの基本回路の組み合わせがある。
  • 特定のビットを取り出し、反転させるビット演算をマスクパターンと呼ぶ。
  • 2進数の加算を行う回路を加算器と呼び、半加算器と全加算器の2つがある。

今回の確認問題「アウトプット用」

確認問題

情報処理の確認問題⑤

「次へ」で問題スタート!

①解説

【問題①】

二つの入力と一つの出力をもつ論理回路で、二つの入力A、Bがともに1のときだけ、出力xが0になるものはどれか。

:AND回路 
不正解×:AND回路は、二つの入力が共に1のときだけ1を出力する回路です。
:NAND回路
正解〇
:OR回路
不正解×:OR回路は、二つの入力のうち少なくとも一方が1のときに1を出力し、二つとも0のときだけ0を出力する回路です
:XOR回路
不正解×:

【解説】

NAND回路の"NAND"はNOTANDを表し、AND回路の出力を反転させた回路です。

そのためNAND回路は、二つの入力が共に1のときだけ0を出力し、その他の場合は1を出力します。

つまり答えは「」となる。

②解説

【問題②】

8ビットのビット列の下位4ビットが変化しない操作はどれか。

:16進表記0Fのビット列との排他的論理和をとる。
正解〇
:16進表記0Fのビット列との否定論理積をとる。
不正解×
:16進表記0Fのビット列との論理積をとる。
不正解×
:16進表記0Fのビット列との論理和をとる。
不正解×

【解説】

各論理演算は次のような操作を意味しています。

  • リスト
  • 論理積(AND)
  • 2つのビットが両方とも1のときにだけ1を出力し、それ以外は0を出力
  • 論理和(OR)
  • 2つのビットのどちらかが1であれば1を出力し、両方とも0のときは0を出力
  • 排他的論理和(XOR)
  • 2つのビットが異なるときは1を出力し、同じときは0を出力
  • 否定論理積(NAND=Not AND)
  • AND演算の結果を反転した演算で、2つのビットが両方とも1のときにだけ0を出力し、それ以外は1を出力

16進表記0Fは2進表記で「00001111」です。

この「00001111」と8ビットのビット列に対して、それぞれの論理演算を行うことで正解を導きます。

ここでは演算対象となる8ビットのビット列に、上位4ビットと下位4ビットそれぞれで1と0の変化が把握しやすい「10101010」を用いています。

つまり答えは「」となる。

③解説

【問題③】

図の論理回路と等価な回路はどれか

 OR回路なので不正解×

 AND回路なので不正解×

 正解〇


 NOR回路なので不正解×

【解説】

設問の回路図について、それぞれAとBが0又は1の値をとった時に、各回路の演算結果であるYの値がどうなるかを考えます。

設問の回路記号はNAND回路を表しています。

結果の真理値表は、2つ入力が同じであれば"0"、異なれば"1"を出力するXOR回路の真理値表と一致します。そのため正解は「」のXOR回路となります。

最後まで読んでいただきありがとうございました!

今回の内容が、役に立ったな!と思ったらシェア&ブクマ登録よろしくお願いします。

また、質問や問い合わせに関しては、コメント欄かお問い合わせフォームを活用ください。

それではまたお会いしましょう。

黄島 成

-情報処理
-