前回は、数学とは何か、に関して代数を使って説明しました。数学的に厳密な説明ではないですが、数学とは、「論理的な独自世界を作る」と考えていいと思います。
ところで、人間の世界では、0から9の数字の組み合わせで世の中を表す方が便利ということですが、コンピュータの世界はどうでしょう。
人間が入力したり、出力を見る場合は10進数になっていますが、基本的にコンピュータが扱うのは、オンかオフ、つまり、電気がついているか、消えているかという2つの値なのです。
これを2進数と言います。0と1の組み合わせで、「すべて」の数を表現する方法です。
機械にとっては、扱う数の種類が少ないので、この方が楽なのですが、人間だと区別がつきづらいので逆に大変です。
この2進数にも四則演算があります。つまり、2進数の足し算、引き算、掛け算、割り算もできます。
基本的なルールは10進数と同じですが、扱える数字が0と1ということで、すぐ繰り上がってしまいます。
たとえば、1+1は10になります。10は十ではなく、1と0の組み合わせた数で、十進数の2にあたります。
10+1は11でいいのですが、11+1は繰り上がって、100になります。
この2進数にも代数があり、これをブール代数と言います。内容は少し専門的になるので詳細は省きますが、コンピュータの回路を組むのに便利な代数です。
ブール代数には、足し算とか掛け算という言い方はなく、AND、OR、NOTなどで演算します。いろいろなルールが導けて、十進数でもあるような交換法則も成り立ちます。
一方、2進数ならではのルールもあって、ド・モルガンの法則は、そのうちの一つです。
ブール代数という数学的「世界」は、コンピュータの仕組みを作るのに、多大なる貢献をしています。
こういう考えをしていくと、いろいろな代数世界を作ることができることがお分かりだと思います。
次回は、少し違った代数を紹介します。