目次ページ  前ページ  次ページ

2. 論理演算

2.3 変数を一つ使う演算


2.3.5 補数を求める演算

 二つの正の数値A,Bを扱うとき、例えば(A+B)=10のとき、一方を他方の「10の補数(complement)」と言います。2進数の場合は(1,0)が互いに補数の関係になります。高度のプログラミングをするとき、コンピュータメモリのビット並びを、個別に独立した二進数の扱いをして、それらのビット位置に何かの情報を与える使い方をすることがあります。例えば、個人情報で男女の区別をするとき、文字で区別するときは2バイト(16ビット)のメモリ領域を取りますが、1ビットのon/offで済ませることができて、全体のメモリ寸法の節約にもなります。バイト並びのデータの、どのビット位置で、何を目的に使うかを設計するプログラミングは、整数型のデータを使って、その全体を論理数の集合の扱いをします。このプログラミングは、コンピュータのハードウエアと関連を持ちますので、プログラミングの初等教育では、普通、ビット処理を説明しません。この整数型のデータは、或るときは全体としての整数を表し、或るときは論理型のデータと見なして、ビット位置ごとにANDやORの計算をさせます。C言語は、プロのプログラマ向けの仕様を持たせていますので、特殊な論理演算子を使うことができます。論理値は(1,0)で表しますので、NOTの処理を、引き算の「1−P」で代用するような補数計算を考えるのですが、この計算はビット並びのデータには使うことができません。つまり全体を独立したビット並びとして論理演算をさせる、特別な補数計算をさせる演算子が必要です。
科学書刊株式会社:電子版 「橋梁&都市 PROJECT: 2012」

前ページ  次ページ