全2856文字

 コンピューターは、あらゆるデータを数値で表します。それなら、コンピューターは数値に対する四則演算だけができれば十分なように思えます。ところが実際には、そうではありません。コンピューターは、本来なら数値でないデータも数値で表すからです。

 このようなデータを演算する場合には、論理演算が大いに役に立ちます。例えば、赤色と青色を混ぜ合わせて紫色というデータを得るには、赤色と青色でOR演算を行うことになります。個々の論理演算の用途は一つに決まっているわけではありませんが、代表的な使い方を説明しますので、イメージをつかんでください。

AND演算は「特定のビットを強制的にOFF」

 論理演算は1ビットに対する演算ですが、これから取り上げる例では、8ビットのデータに対する論理演算を行います。その方がイメージをつかみやすいからです。この8ビットのデータは、1ビットずつがネオン・サインの電球のON/OFFを表していると考えてください。1でONになり、0でOFFになるとします(図1)。このネオン・サインの表示を変化させるために、4種類の論理演算を行ってみます。

図1●8ビットのデータで電球をON/OFFする
図1●8ビットのデータで電球をON/OFFする

 まずAND演算です。AND演算の用途は、特定のビットだけを強制的にOFFにして、その他のビットはそのままにすることです。この操作を「ビットを0でマスクする」と言います。マスクとは「覆い隠す」という意味です。AND演算の真理値表(表1)を見てください。aに対してbというデータで演算しますが、bの値が0であれば、aの値にかかわらず(aが0でも1でも)演算結果は0になります。bの値が1であればaの値は変化しません。

表1●AND演算の真理値表
表1●AND演算の真理値表
[画像のクリックで拡大表示]

 この性質を利用して、強制的にOFFにしたい(0でマスクしたい)ビットを0にしたデータでAND演算を行えば、該当するビットをマスクできます。図2は、10101001というデータと11110000というデータをAND演算することで、下位4ビットを強制的にOFFにする例です。電球のON/OFFを思い浮かべてください。上位4個の電球はそのままで、下位4個の電球がOFFになるのです。

図2●下位4ビットを強制的にOFFにする
図2●下位4ビットを強制的にOFFにする