コラム5. 演算と計算
プログラミングに馴染みのない人にとって、「演算(えんざん)」という言葉は、今一つピンと来ないかもしれません。「なぜ、計算と言わず、演算と言うのだろう?」という素朴な疑問を持つ人も少なくないでしょう。実は、厳密にいうと、この二つの概念は、微妙に違うものなのです。
そもそも、演算とは、数学の概念では、「ある要素と、ある要素に、何らかの操作を施し、何らかの結果を得ること」を言います。こういうと、何の事だかわかりませんが、計算と言うと、加算、減算、乗算、といったような、数値同士の計算をして、その結果を得ることを言いますが、演算の場合、ここに比較のような概念も入ってきます。
命題から真偽を得るのも演算
たとえば、「a > b」という式があったとします。このとき、たとえば、a = 10,b = 5ならば、この式は正しく、a = 3,b = 7であれば、間違いです。この時、正しいという概念を「真(しん)」、正しくないということを、「偽(ぎ)」などという呼び方をします。さらに、最初に述べた、「a > b」のような文章、あるいは式のことを、「命題(めいだい)」と言います。
つまり、ある命題が、「真」または「偽」であることを言うことも、実は演算の一つなのです。つまり、演算とは、私たちが考えている計算よりももっと大きな概念であり、計算は、演算の一形体だと考えることができるのです。
論理演算
また、ここから更に発展させてものが、論理演算です。論理演算は、ブール演算(Boolean Operation)とも呼ばれ、1(真)か0(偽)かの2通りの入力値に対して1つの値を出力する演算です。
論理演算には、論理積(AND)、論理和(OR)、論理否定(NOT)、排他的論理和(XOR)といった演算があります。1(真)か0(偽)かの入力に対し、何らかの結果を出力するのが論理演算です。それぞれの演算の内容は以下の通りになります。AとBという2つの値があったとき、それぞんれの演算結果は各演算で演算結果は以下のようになります。(NOTの場合はA単独)
論理積(AND)A | B | A AND B |
---|---|---|
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
論理和(OR)
A | B | A OR B |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
表6-3.排他的論理和(XOR)
A | B | A XOR B |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
表6-4.否定演算(NOT)
A | NOT A |
---|---|
0 | 1 |
1 | 0 |
実はコンピュータは、私たちが知っているような四則演算はもともと出来ないのです。そのため、この論理演算を組み合わせて四則演算を行っているのです。