PR/BLOG

広報・ブログ

論理演算

sekiya

はじめまして、技術開発推進部の関屋です。
今年もJリーグが幕を開けました。どのチームが優勝するのか楽しみです。
今回は私が先日受験した基本情報技術者試験から頻出問題である論理演算について説明していきます。

論理演算

コンピューターはすべての情報を電気信号のONとOFFの組み合わせで表しています。
そこで一般的にONを1、OFFを0に対応させ、2進数で表現します。
コンピューターに関する論理演算ではある事象が「真」ならば1を、「偽」ならば0で表します。
はじめに、論理演算の基本として論理積(AND)、論理和(OR)、排他的論理和(XOR)を紹介します。

 

論理積(AND)

論理積は入力した値がすべて1の場合に1が出力されます。

「・」は論理積を表します

論理和(OR)

論理和は入力値のいずれかに1がある場合に1が出力されます。

「+」は論理和を表します

排他的論理和(XOR)

入力値が異なる場合に1が出力されます。

」は排他的論理和を表します。

実践

ホームページやブログの作成時に使用するHTMLやCSSでは色を指定する場合に、
#から始まる6桁の16進数で色を表現しています。
CSSのカラーコードを使って、ビット演算をしていきましょう!

    カラーコード(16進数)      カラーコード(2進数)
赤色:#FF0000                 1111 1111 0000 0000 0000 0000
青色:#0000FF                 0000 0000 0000 0000 1111 1111
紫色:#FF00FF                 1111 1111 0000 0000 1111 1111

まずはじめに、赤色と青色をかけあわせて、紫色のカラーコードを求めましょう。

       赤 1111 1111 0000 0000 0000 0000
   OR) 青 0000 0000 0000 0000 1111 1111
      _________________________________
         1111 1111 0000 0000 1111 1111

紫色のカラーコードと一致しましたね。

 

次に出来上がった紫色から赤色を取り除いて、青色のカラーコードを求めましょう。

1.ビット列の反転
ビット列の反転を行うには、元のビット列と特定のビット列(以下、「マスクパターン」と呼ぶ)とのあいだで排他的論理和(XOR)をとります。
元のビット列:赤色    マスクパターン:16進数表記FFFFFF

       赤 1111 1111 0000 0000 0000 0000
   XOR)  1111 1111 1111 1111 1111 1111
       ________________________________
         0000 0000 1111 1111 1111 1111    ---①

求めたビット列を①とします。

 

2.ビット列の取出し
ビット列の取出しを行うには、元のビット列とマスクパターンとのあいだで論理積(AND)をとります。
元のビット列:紫色    マスクパターン:①

       紫 1111 1111 0000 0000 1111 1111
   AND)  0000 0000 1111 1111 1111 1111
       ________________________________
         0000 0000 0000 0000 1111 1111

青色を取り出すことができました!

おわりに

ビット列の取出し(論理積)はネットワークの頻出問題であるIPアドレスとサブネットマスクからサブネットワークアドレスを求める際にも使うのでしっかり理解しておきましょう!

一覧に戻る
ゆりちゃん

技術開発推進部ゆりちゃんからのお願い顔マークを押して、技術ブログの
感想をお聞かせください^^