この記事で解決できる内容
この記事では「論理演算とはなにか?」のような疑問を持っている方から、論理演算の問題を解いて見たい方までを対象に、論理演算についてわかりやすく解説していきます。
まずは演算とはなんぞや?というところから説明していき、論理演算について必要な知識の解説、最後にはどんな時に使うのかを理解できるようにします。
つまりこの記事のGOALは論理演算の問題を解けるようになることです。
論理演算という難しい言葉で表現すると「うっ...」と身構えてしまう人もいるかも知れませんが、そんな方でもわかりやすい表現を使って解説していますのでぜひ最後まで読んでみてください!
論理演算とは
コンピュータが計算をすることを演算と呼び、四則演算や論理演算等様々な種類の演算があります。
論理演算は一見、足し算や引き算などの四則演算と異なる気がしますが、覚えてしまえば同じ感覚で計算することができます。
四則演算に足し算や引き算があるように、論理演算には AND演算・OR演算・WOR演算・NOT演算 の4種類があります。論理演算はこの4種類を覚えて行けば基本はOKです。
高校数学の復習だと思ってわかりやすく説明するのでついてきてください!
演算の種類
- 四則演算 ⇒ 足し算・引き算・掛け算・割り算 のこと!
- 論理演算 ⇒ AND演算・OR演算・XOR演算・NOT演算 のこと!
押さえておきたい論理演算の予備知識
コンピュータは 0 と 1 だけですべての情報を伝えています!
コンピュータが情報を理解するのに行うビット演算では、0が偽を表し対象ではない事を意味しています。そして 1 が真を表し対象ですよってことを意味しています。
0と1をコンピュータが理解するために電子信号を出すか出さないかで表現するようです。
- 1 のときは電気信号を出す ⇒ ビビときたのでコンピュータは 1 と理解する
- 0 のときは電気信号が出ない ⇒ ビビとこないのでコンピュータは 0 と理解する
電気信号の有無でありとあらゆるデータや情報を伝達・管理しているのです。
論理演算で使う真理値表とベン図って?
論理演算を行う上で使うツールが 真理値表 と ベン図 です。
真理値表は、a と b の真、偽のときの関係に対しての場合分けを見やすく表にまとめたものです。
「a が真、bが偽の時、論理和は?」っていうのを表にまとめてわかりやすく見える化したものです。
それに対して、真理値表は表だったのを図を使って表したのがベン図です。真理値表と同じように、a と bの論理演算を行う際に、わかりやすいように見える化したものです。
論理演算の種類を解説
ここからは論理演算の種類を解説していきます。
四則演算に、足し算、引き算などがあるように論理演算にもAND演算、OR演算など演算に種類があり、それぞれの特徴を理解しておく必要があります。
高校数学で学んだ集合に近しい内容なので、習ったことがある人はちょっと理解しやすいかもしれないです。
論理演算の種類
- AND演算(論理積)
- OR演算(論理和)
- XOR演算(排他的論理和)
- NOT演算(否定)
AND演算:論理積について
AND演算は論理積とも呼ばれており、a と b の重なっている部分を表します。
AND演算の表し方がたくさんあり、「 a かつ b 」とか「 a ∩ b 」とかって表し方があります。
イメージしてほしいのはAもBも真だったら真、AかBのどちらか一方でも偽なら偽、という点です。
真や偽を使うとややこしいって人は、「AにもBにも当てはまる部分が論理積の正しい部分。重ならない部分は間違っている部分」です。
例えば、論理積パーティーには、Aくんの友達とBくんの友達友達の中から、Aくんの友達でもあり、Bくんの友達でもある場合にのみ参加OKみたいな感じ。
OR演算:論理和について
OR演算は論理和とも呼ばれており、a と b の真を足した部分を表します。
OR演算も様々な表し方があり、「 a かつ b 」と表現したり、「 a ∪ b 」と表現することもあります。
イメージとしてはaの中とbの中合わせた部分なんだな〜って感じでイメージしてください。
ビット演算の場合は、a と b のどちらか一方でも 1 すなわち 真 であれば論理和も 真 となります。
先程の例で説明すると、論理和が真のパーティーでは、Aくんの友達であれば参加できるし、Bくんの友達であれば参加できます。どちらか一人と友達であれば参加できるパーティーってこと。
XOR演算:排他的論理和とも呼ばれる。
XOR演算のことを排他的論理和とも呼びます。a または b のどちらか一方だけ 真の場合真を返すというのがXOR演算です。
ビット演算では、1と0しかないので、1が真、0が偽を表します。a と bどちらか一方が 1 の時、すなわち 1 と 0 の組み合わせのときに 1 を返します。
真偽のほうがわかりやすければ、どちらか一方だけ真の場合、すなわち真と偽の組み合わせの時に真を返します。
先程の例だと、排他的論理和が真パーティーでは、AくんまたはBくんだけと友達であれば参加していいけど、AくんともBくんとも友達なら参加してはいけませんってことです。
NOT演算:論理否定
NOT演算は論理否定とも呼ばれ、〜以外の部分を表します。
否定論理和と否定論理積が最も多く使われるのでこの2つを理解しましょう。
否定論理和は「論理和以外の部分」を表します。つまりは a と b のどちらも偽のとき、真すなわちビット演算では a と b のどちらも 0 の時に 1 を返すのが否定論理和です。
否定論理積は「論理積以外の部分」を表します。a と b のどちらか一方だけでも 偽 の時に 真 を返す、すなわちビット演算だと a と b のどちらか一方だけでも 0 の時に 1 を返すのが否定論理積です。
NOT演算や否定論理和にも様々な表現方法があり、「 Ā 」が Aの否定を表していたり、a と b の否定論理積を「 a NAND b 」と表現したりします。
否定論理和と否定論理積
- 否定論理 ⇒ 「 ā 」と表現し「a 以外」を表します。
- 否定論理和 ⇒ 「a NOR b 」などと表現し、 a と b どちらも 偽 である時 真 を返す計算
- 否定論理積 ⇒ 「 a NAND b 」などと表現し a と b どちらか一方でも 偽 である時 真 を返す計算
論理演算の過去問を解いてみよう!
ここまでの説明をより理解しやすくするために、情報技術者試験で過去に出題された論理演算の問題を解いてみます。
排他的論理和と論理和の理解を必要とする 論理演算
問題.8ビットの値の全ビットを反転する操作はどれか。
出典:令和元年秋期 問2
ア.16進表記 00 のビット列と排他的論理和をとる。
イ.16進表記 00 のビット列と論理和をとる。
ウ.16進表記 FF のビット列と排他的論理和をとる。
エ.16進表記 FF のビット列と論理和をとる。
この問題のポイント
- ビットとは?ビット列とは何か理解しているか
- 排他的論理和と論理和について理解しているか
- 16進数から2進数への基数変換について理解しているかどうか
「 8ビット の値 」とみたら 2進数 で表した 8桁の数字ということを覚えてますでしょうか?
この数字は2進数表示で 00001111を 11110000 に反転している選択肢を選びます。
1. 16進数表記 を2進数に直す
ア.16進表記 00 ⇒ 00000000
イ.16進表記 00 ⇒ 00000000
ウ.16進表記 FF ⇒ 11111111
エ.16進表記 FF ⇒ 11111111
16進数から2進数への奇数変換がよくわからない人は下記記事で復習できます。
合わせて読みたい
-
【基本情報技術者試験】基数とは?10進数から2進数へ変換ができるようになるまで!
続きを見る
2. 00000000 と 排他的論理和 か 論理和 求める
排他的論理和 はどちらか一方が 1 の時だけ 1 を返す演算。
論理和は どちらか一方だけでも 1 の時に 1 を返す演算。
ア. 00001111 と 00000000 の 排他的論理和⇒ 00001111
イ. 00001111 と 00000000 の 論理和 ⇒ 00001111
ウ. 00001111 と11111111 の 排他的論理和 ⇒ 11110000
エ. 00001111 と11111111 の 論理和 ⇒ 11111111
よって答えは全ビットが反転している ウ となります。
否定論理積を理解している必要がある論理演算
XとYの否定論理積 X NAND Yは,NOT(X AND Y)として定義される。X OR YをNANDだけを使って表した論理式はどれか。
出典:平成29年春期 問3
ア. ((X NAND Y) NAND X) NAND Y
イ. (X NAND X) NAND (Y NAND Y)
ウ. (X NAND Y) NAND (X NAND Y)
エ. X NAND (Y NAND (X NAND Y))
この問題のポイント
- 否定論理積 について理解しているか
- X OR Yの意味(論理和)を理解しているか
- X と Y に具体的な数字を入れて計算できるかどうか
この問題は、 X と Y に具体的な数字。「 1 」と「 0 」を代入して見るというのが一番早い解き方なのではないかなと思います。
1. X と Y に 0 を代入して 0 を返す選択肢を探す。
X OR Y は「 X と Y どちらか一方でも 1 の場合に 1 を返す演算すなわちどちらも 0 のときのみ 0 を返す演算」なので、NAND を使った論理式で X と Y 両方に 0 の時 0 を返す選択肢を探します。
「 0 NAND 0 」は 「 1 」なので
ア. ((0 NAND 0) NAND 0) NAND 0 ⇒ 1
イ. (0 NAND 0) NAND (0 NAND 0) ⇒ 0
ウ. (0 NAND 0) NAND (0 NAND 0) ⇒ 0
エ. 0 NAND (0 NAND (0 NAND 0)) ⇒ 1
演算結果が 1 になる ア と エ は除外されます。 答えは イ か ウ に絞られました。
2. X に 1 、Y に 0 を代入して 1 を返す選択肢を探す。
「0 NAND 0」は「1」、「1 NAND 0」 は「0」なので、
イ. (X NAND X) NAND (Y NAND Y) ⇒ (1 NAND 1)NAND (0 NAND 0) ⇒ 0
ウ. (X NAND Y) NAND (X NAND Y) ⇒ (1 NAND 0)NAND (1 NAND 0) ⇒ 1
よって答えは イ です。
論理演算以外!基本情報技術者試験おすすめ学習方法3選
論理積や論理和など、論理演算を学習している人の多くは、基本情報技術者試験の学習をしている人も多いのではないでしょうか?
もしも基本情報技術者試験を確実に1発で合格したいのであれば、参考書やオンライン学習サービスを利用するのがおすすめです。
以下のサービスを利用して基本情報技術者試験合格を目指してみてください!
基本情報技術者試験おすすめの学習方法
- 本・参考書
- オンライン講座
おすすめ学習方法①:本・参考書
基本情報技術者試験の学習をするなら、マイペースにお金もそんなにかけずに、学習できる「本・参考書」がおすすめです。
僕が実際に中を見て確認した中でおすすめの参考書は以下の通り。
基本情報技術者試験のおすすめ参考書
- イメージ&クレバー方式でよくわかる 栢木先生の基本情報技術者教室
- キタミ式イラストIT塾 基本情報技術者
- 基本情報技術者 合格教本 (情報処理技術者試験)
それぞれに、メリット・デメリットが存在しており、あなたの学習意欲が湧き上がる、よりわかりやすい参考書を選ぶ必要があります。
以下の記事では、それぞれの参考書がどんな人におすすめなのか、メリットやデメリットを紹介しているので、基本情報技術者試験を本や参考書で学習したい人は是非読んでみてください!
合わせて読みたい
-
基本情報技術者試験に合格するためのオンライン講座おすすめ3選
続きを見る
おすすめの学習方法②:オンライン講座
基本情報技術者試験を、確実に1発で合格したいのであれば、「オンライン講座」を利用して最短最速で学習するのもおすすめです。
オンライン講座で学習することで、わからないところをすぐに質問できるため、挫折するリスクを下げてられますし、学習ペースも管理してくれるので、モチベーションの維持にもなり、より確実に合格を目指せます。
特に以下の3つのサービスがおすすめです。
基本情報技術者試験 おすすめオンライン講座
合わせて読みたい
まとめ
今回は論理演算の基礎から、過去問を軽く解くところまで解説していきました。
論理演算は情報技術者試験のためだけでなく、いざプログラミングをする上で if文 などの制御構文等でも知識を必要とすることが多いので必ず理解しておきたい分野です。
基本情報技術者試験について少しでも興味のある方や、他のジャンルの解説もしているので他の記事も読んでみてください!
この記事のまとめ
- 論理演算はまず4つの演算を覚えよう!AND演算(論理積)
- OR演算(論理和)
- XOR演算(排他的論理和)
- NOT演算(否定)
- 論理演算をする上で便利なツールを覚えよう!
- 真理値表
- ベン図