二進法に掛け算は無い

昨日は「コンピュータはかけ算すら足し算の繰り返しとして計算する。」ということに対して批判的なことを書きましたが、コンピュータで使用する二進法では掛け算を意識する必要が無いかもしれません。普通に使われているのは十進数で、この掛け算は一桁同士の数の場合でも10×10の100通りあります。0の掛け算はすべて0になるので1から9の掛け算を九九として暗記します。二進数の場合は2×2の4通りから0の掛け算を除くと1×1の一つしか残りません。これを覚えればいいので十進数に比べるとかなり楽です。九九の場合でも一の段はほとんど覚える必要が無いのを考えれば、二進数の掛け算で覚えることは殆どないでしょう。
実際に計算して見ます。まず十進数の場合。


 13
×14
―――
 52
13
―――
182

次に二進数の場合です。十進数の13は二進数で1101で、14は1110になります。


    1101
   ×1110
――――――――
    0000
   1101
  1101
 1101
――――――――
10110110


二進数の10110110は十進数の182なので答えは同じです。計算の過程は見ての通り、0を掛ける場合は0になり、1を掛ける場合はそのままになっています。上の式では説明のわかりやすさのために0を掛けた結果もいちいち書いていますが、これはわざわざ書く必要も無いというのは十進数の掛け算で0があった場合と同じです。
こういった計算がコンピュータでもなされているわけです。少なくとも乗算器などを使っていない基礎的なやりかたとしてはそうです。そして、1の掛け算というのを意識する必要がないので掛け算を足し算の繰り返しとして行っているというのは全くの間違いというわけではないでしょう。

もし最初から二進数を使って数の数え方や計算のやり方を教わったらどうなるのだろうということを少し考えました。桁数は少し増えますが、計算自体はずいぶん楽になるでしょう。九九を覚える必要もなくなります。しかし、掛け算という概念を理解することはかえって難しくなるかもしれません。それは上で書いた掛け算を意識しないで足し算の繰り返しで実際の計算が行えるからです。もちろん面積や比例といったものなどから掛け算の本質を理解することはできるのでしょうが…。



以前に書いて関連のありそうなものへのリンク
e進数
3進コンピュータ