LAST UPDATE 1998/08/08


『 その8-4 』


 ■ 論理演算について

これはなんだかんだと言ってみても、プログラミングには欠かせない。VBでは私の知らない論理演算もサポートされているようであるが、ここでは代表的なAnd Or Xor について説明する。
     And: 両方とも本当なら、答えは本当。
     Or:  どちらかが本当なら、答えは本当。
     Xor:  両者の答えが違えば、答えは本当。
 これが、日本語での説明になる。一覧表にすると表2のようになる。
論理演算の多くはif条件式で使われる。たとえば「Xの値が0~9まで」という条件式は
    if ((X<=0) And (X<=9)) Then
になり、「0より小さい、もしくは9より大きい」という条件式であれば
    if ((X<0) Or (X>9)) Then
になるのである。

演算 結果
And 本当 And 本当 本当
うそ And 本当 うそ
本当 And うそ うそ
うそ And うそ うそ
Or 本当 Or 本当 本当
うそ Or 本当 本当
本当 Or うそ 本当
うそ Or うそ うそ
Xor 本当 Xor 本当 うそ
うそ Xor 本当 本当
本当 Xor うそ 本当
うそ Xor うそ うそ
表2:論理演算(言葉編)
演算 結果
And 1 11
0 10
1 00
0 00
Or 1 11
0 11
1 01
0 00
Xor 1 10
0 11
1 01
0 00
表3:論理演算(数値編)

 ■ 数値に対する論理演算

 論理演算は数値に対しても可能なのである。しかし常識で考えれば、数値には「本当」も「嘘」も無いはずで、変である。しかし
    10 And 6 = 2
という数式は正しい。ということで、これを理解するためには2進数を覚えなくてはならない。
本講座は超初心者を対象にしているからして、「2進数は常識でしょう。」という事は許されない。また2進数の考え方は時として便利だったりするわけなので、その辺も合わせて解説していく。


10進数 16進数 2進数
0 00 0000
1 01 0001
2 02 0010
3 03 0011
4 04 0100
5 05 0101
6 06 0110
7 07 0111
8 08 1000
9 09 1001
10 0A 1010
11 0B 1011
12 0C 1100
13 0D 1101
14 0E 1110
15 0F 1111
16 10 10000
17 11 10001
表4:10進,16進,2進数

 ■ 2進数

 10進数は0~9までの10種類の文字を使って表される。16進数は0~9とA~Fまでの16種類の文字を使って表される。同じように2進数は0~1の2種類の数値を使って表される数値の形態である。表4に3種類の対応表を載せておく。
 「数値における論理演算」とは、数値を2進数のレベルで論理演算することなのである。前ページの表3は論理演算を数値で行った時の結果表である。
    「本当」 = 「True」 = 1
    「うそ」 =「False」 = 0
と考えて計算するのである。ここで、
    10 And 6
について再考してみる。
    10 = 1010
    6 = 0110
であるからそれぞれの桁を縦に論理演算していくと一番右の桁は0 And 0 = 0で右から2番目は1 And 1 = 1になる。同様に計算していくと結果は0010になりこれを10進数で表すと2になるのである。ちなみに
    10 Or 6 = 14
    10 Xor 6 = 12
になるので各自2進数に変換して確認してみよう。 この計算が実際に何の役に立つのかをいくつか例を挙げて説明していこう。





その8 -1 | その8-2 | その8-3 | その8-4 | その8-5

『 サルのゲーム製作講座 』 目次 | その 1 | その 2 | その 3 | その 4 |
その 5 | その 6 | その 7 | その 8 | その 9 | その 10 | その 11


もどる

e-mail: sc_3da@magical2.egg.or.jp