基本情報技術者(基礎理論⑤)

基本情報技術者

この記事では集合(ベン図)論理演算についてご紹介します。
私の記憶が正しければ集合は高校1年生くらいの時に習った気がします…。
しっかり睡眠学習してました!!!
では、集合、論理演算とは何なのかじっくり見ていきましょう。

ベン図

ベン図(ベンず、もしくはヴェン図、英: Venn diagram)とは、複数の集合の関係や、集合の範囲を視覚的に図式化したものである。イギリスの数学者ジョン・ベン (John Venn) によって考え出された。
Wikipediaより

ということで、ベン図はイギリスのジョン・ベンさんが考え出したものなんですね。
私は大の数学嫌いですので図で表現してくれるのは非常にありがたい…

ベン図の説明。

集合とベン図

集合というのは、明確に区別できる条件でグループごとに分類されたものの集まりのことを言います。また集合を構成している個々を要素と言います。
集合が複数ある場合はその関係性を「」、「」、「」といった記号を用いて表現します。
「∩」は「かつ」で、「∪」は「または」、「」は「ではない」を意味します。

名称記号意味ベン図
積集合A∩BAかつB
和集合A∪BAまたはB
補集合AAではない

論理演算

私たちが普段使用している「たし算」「ひき算」「かけ算」「わり算」は四則演算といいます。
一方、「基本情報技術者(基礎理論①)」でもお伝えしましたがコンピュータは電圧の高低のみで演算を行う必要があり、直接四則演算ができません!
ではどのように演算しているのか。そこで登場するのが論理演算となります。
コンピュータは様々な計算をこの論理演算を組み合わせて行っています。

論理演算は2進数1桁のみで演算をおこないます。「0」「1」のみを計算に使用し、演算結果も「0」「1」のどちらかになります。
四則演算においては「+」「ー」「×」「÷」を演算子として使用していましたが、論理演算では「AND」「OR」「XOR」「NOT」の4種類で演算を行います。
論理演算の計算結果をまとめた表を真理値表と言います。
では実際に真理値表をみながらご説明していきます。

AND

ANDはAとBの両方が「1」の場合のみ演算結果が「1」となる論理演算です。

ANDをベン図で表すと以下のようになります。

OR

ORはAとBのうち少なくともどちらか一方が「1」の場合に演算結果が「1」となる論理演算です。

ORをベン図で表すと以下のようになります。

XOR

XORはAとBが異なるときに演算結果が「1」、同じとき「0」となる論理演算です。

XORをベン図で表すと以下のようになります。

NOT

NOTは入力に対し演算結果が反対になる論理演算です。

NOTをベン図で表すと以下のようになります。

NAND、NOR

「AND」「OR」「XOR」「NOT」の4種類を紹介しましたが、基本情報技術者試験においては、上記で説明した4種類以外に「NAND(否定論理積)」と「NOR(排他的論理和)」も出題されることがあります。

NANDは、AND(論理積)とNOT(否定)を組み合わせた論理演算です。計算方法としてはANDの演算後NOTの演算を行います。

NORは、OR(論理和)とNOT(否定)を組み合わせた論理演算です。計算方法としてはORの演算後NOTの演算を行います。

こんな論理演算どこで使うんだよ…
と思われている方もいるかもしれません。実は色々なとことで使われています。例としてIPアドレスのビット列操作があります。
詳しくは別の記事でご紹介させていただきますが、特定ビット列取得や特定ビット列反転の際に論理演算が多用されています!

演算子の優先順位

四則演算のときは「()」が先だとか、「かけ算」「わり算」が先とか計算について優先順位がありましたよね。それと同じで論理演算の場合にも演算子に優先順位が存在します。
色々書き出すと様々なルールがあるのでかえって煩雑になるので、基本情報技術者試験に出てくるものに絞ってお伝えします。気になる勉強家の方は是非ググってみてください!
絶対に覚えておかなければならない優先順位は以下の通りです。

①括弧
②NOT
③AND
④OR

私も覚えるのに苦労しましたが「OR(論理和)」より「AND(論理積)」のほうが優先順位が高い、というのが特にポイントです。
例として「A AND B OR C AND (D OR E)」があったとしますこの時の演算順位は

①:(D OR E)
②:A AND B
③:C AND (①)
④:② OR ③

となります。

まとめ

いかがだったでしょうか。私はベン図に救われた身なので、みなさまにもぜひベン図を活用していただきたいです。真理値表はベン図が書ければおのずとかけます。(逆も然りです。)
また、最後の項目で出てきた演算子の優先順位についてもとても重要なので必ず覚えてください!
覚えた後はひたすら過去問・類似問題を解きまくりましょう!勉強熱心なあなたなら必ずできます!

①区別できる条件でグループに分類されたものの集まりを集合という
②「0」と「1」の1桁のみを対象にした演算を論理演算という
③論理演算の基本的な演算子に「AND」「OR」「XOR」「NOT」がある
④「NAND」は「AND」と「NOT」を組み合わせた演算子
⑤「NOR」は「OR」と「NOT]を組み合わせた演算子
⑥論理演算の演算子には四則演算と同じように演算に優先順位がある(以下の順)

(1)括弧
(2)NOT
(3)AND
(4)OR


コメント