コンピュータは足し算しかしない?
ゲームも動画も動かすコンピュータ。その中では、実は「足し算」が大活躍しています。どうして足し算からいろいろな計算ができるのでしょう?
計算をする小さな装置「CPU」
コンピュータには、計算や命令の実行を受け持つCPU(シーピーユー)という部品があります。コンピュータの中で仕事を進める中心的な装置です。
CPUの中には、数字を一時的に置くレジスタという、とても小さくて高速な記憶場所があります。そして、数字を実際に計算する部分を演算装置(ALU)と呼びます。
例えばレジスタAに3、レジスタBに2を入れて、演算装置で足すと、答えの5ができます。右の図で動きを見てみましょう。
① 足し算は、二つの数を合わせる
まずは足し算です。レジスタAに3、レジスタBに2を入れると、演算装置は二つの数を足して5を求めます。
3 + 2 = 5
右の図で「足し算」を選んで、一歩進めてみよう。これがほかの計算を考える出発点です。
② 引き算は、マイナスを足せばいい
5から2を引く計算は、5に「マイナス2」を足しても同じです。
5 − 2 = 5 + (−2) = 3
コンピュータは負の数を特別な数字の並びで表し、足し算をする回路を利用して引き算も行えます。
③ 掛け算は、何度も足せばいい
3を4倍するのは、3を4回足すことです。
同じ足し算を繰り返せば掛け算になります。3×4は「+3」を「4回」実行すれば良いのです。実際のCPUでは、より速く計算するための掛け算専用の回路も使われます。
④ 割り算は、何度も引けばいい
13を3で割るとき、13から3を何回引けるか数えてみましょう。
4回引けて、1が残ります。つまり、13 ÷ 3 = 4 余り 1。実際には、CPUはもっと効率のよい方法でも割り算を行います。
コンピュータはマイナスをどう表す?
コンピュータは、0と1を並べた2進数で数字を表します。例えば、4つの0と1(4ビット)を使って、3とマイナス3を表してみましょう。
4ビットで負の数を表すときは、2の補数というしくみを使えます。この表し方では、3とマイナス3を普通の足し算の回路で足すだけで0になります。
大切なのは、同じ足し算の回路で引き算もできること。マイナスの数字の作り方は、また別の機会に詳しく考えましょう。
足し算だけで、こんなにできる!
引き算を負の数の足し算に変え、掛け算を足し算の繰り返し、割り算を引き算の繰り返しと考えると、四則演算がつながって見えてきます。
つまり「コンピュータは足し算しかしない」という言葉は、足し算を基本に多くの計算を組み立てられるという面白い見方なのです。現代のCPUは足し算以外にも、比較や論理演算、掛け算などの回路を備えています。