本記事の内容
本記事は、基本情報技術者試験における2進数の四則演算、シフト演算について、情報及びコンピュータの素人目線から説明する記事です。
本記事を読むに当たり、特に必要な知識はありませんが、集合と論理演算についてより厳密に知りたい方は以下の記事も合わせてご覧ください。
ベン図を使おう
本記事の内容は別シリーズの記事(論理と集合シリーズ)を読んでいただければ基本的には網羅できます(XORなどは扱っていないという意味で基本的)。
ただ、数学に大きく寄っているため、この章では超特急(もはや新幹線)で必要な部分だけ述べることにします。
本章で言いたいこととしては
ベン図は非常に強力なツールである
ということです。
集合とベン図
“本章において”、集合とベン図はそれぞれ何者か、というと次です。
集合、ベン図
- 集合 区別できる条件でグループわけされたモノの集まりを集合という。また、集合を構成するここのモノを要素という。
- ベン図 集合の関係を視覚的に表した図をベン図という。
数学的に厳密な話とは別で、直感的なものですが、「問題が解ける」という意味ではこれで十分です。
集合の関係はいくつもありますが、代表的かつ試験で出題されるのは以下の3種類です。
- 積集合:\(A\cap B\)
- 和集合:\(A\cup B\)
- 補集合:\(\bar{A}\)
論理演算
我々が日常で使う\(+,-,\times,\div\)は四則演算と呼ばれる演算です。
しかし、コンピュータの世界では2進数であるため、\(0\)と\(1\)(電圧が低い、高い)という2種類しか表現出来ません。
故に、コンピュータの世界では直接四則演算を行うことは出来ないのです。
そこで、コンピュータに計算させるために応用されたのが論理演算です。
コンピュータは論理演算を組み合わせることによって、四則演算を始め、様々な計算を行います。
論理演算の基本
論理演算
2進数の1桁のみを対象とした演算方式を論理演算という。つまり、論理演算が扱う数字は0と1の二種類だけであり、その結果も常に0か1かということです。
四則演算は\(+,-,\times,\div\)の4種類でした。
論理演算の主たる演算はAND、OR、XOR、NOTの4種類です。
四則演算の結果は無限に存在するため表にまとめることは出来ませんが、論理演算の計算結果は有限個しか存在しないため、次のようにまとめることが出来ます。
(※数学のご経験がある方であれば、「0を偽、1を真と捉えれば単純に論理の話ね」と感じると思います。)
A | B | A AND B | A OR B | A XOR B | NOT A |
0 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
演算子 | 論理式 | 説明 |
AND | A\(\cdot\)B | AとBの双方が「1」のときに、「1」を出力する論理演算。論理積とも呼ばれる。 |
OR | A\(+\)B | AとBの少なくとも一方が「1」のときに、「1」を出力する論理演算。論理和とも呼ばれる。 |
XOR | A\(\oplus\)B | AとBの値が異なる場合に「1」を出力し、値が同じ場合には「0」を出力する論理演算。排他的論理和とも呼ばれる。 |
NOT | \(\bar{A}\) | 0が入力なら1を出力し、1が入力なら0を出力する論理演算。否定とも呼ばれる。 |
「え?これ、覚えるの?」というと覚えます。
ただ、この表をまるっと覚えるのは骨が折れますので、ベン図で視覚的に覚えるのが良いと思います。
NANDとNOR
上記の4つの演算子が論理演算の基本演算ですが、基本情報技術者試験では、上記の他にNAND(なんど、否定論理積)とNOR(のあ、否定論理和)があります。
ただ、非常に単純です。
NANDは、ANDを否定しただけですし、NORはORを否定しただけです。
つまり、
- A NAND B = NOT (A AND B)
- A NOR B = NOT (A OR B)
という単にそれだけです。
したがって、真理値表とベン図は以下のようになります。
A | B | A AND B | A OR B | A NAND B | A NOR B |
0 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
論理演算子の優先順位
四則演算では
カッコ → \(\times\)と\(\div\) → \(+\)と\(-\)
という優先順位がありました。
論理演算にも優先順位があります。
結論としては以下です。
(基本情報技術者試験における)論理演算の優先順位
実は、論理演算の優先順位には細かいルールがありますが、基本情報技術者試験で覚えておく必要がある順位としては上記だけです。
ちょっとだけ観察してみると、ANDは論理積とも呼びますし、ORは論理和とも呼ぶので、四則演算の順位と似ていますね。
例1. 「A OR B AND C」という論理演算の処理の順番
この場合、まず「B AND C」がまず処理され、その後にORの処理が実行されます。
ベン図で描けば次です。
もし、仮に順番を変えてみると、
となってしまって、全く別の答えになってしまいますので、注意です。
例題
XとYの否定論理積X NAND Yは、NOT(X AND Y)で定められる。X OR YをNANDだけを使って表した論理式はどれか。
- ((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とYの和集合です。
これを意識して各選択肢をベン図で表現すれば以下です。
したがって、答えは2.です。
結
今回は、基本情報技術者試験における集合、論理演算について、情報及びコンピュータの素人目線から説明しました。
問題が解けるということに重きを置き説明しました。
質問、コメントなどお待ちしております!
どんな些細なことでも構いませんし、この記事に限らず、「定理〇〇の△△が分からない!」などいただければお答えします!
Twitterでもリプ、DM問わず質問、コメントを大募集しております!
コメントをする