キッズプログラミング教室ぐらみん

X

コンピュータの考える数字

1. わたしたちが使う数字とコンピュータが使う数字

この記事は ぐらみんこーど で勉強している内容の一部を公開したものです。ぐらみんこーどではさらにこの中に JavaScript の問題が多数含まれます。

わたしたちが普段使っている数字とコンピュータが使う数字は違います。コンピュータは電気の ON と OFF の状態しか持っていないため、同じように 0 と 1で数字を表現するのが効率がよくなってきます。

この 0 と 1 の 2つだけで表現する数字を 2進数といいます。

2. わたしたちが使う数字(10進数)

そして、ふだん私たちが数をかぞえるときに使っている「1」「2」「3」・・・という数え方を 10進数(じゅっしんすう)といいます。10進数では 9まで数えると桁(けた)が 1つ上がり、99まで行くとまた桁が 1つ上がりますね。

3. コンピュータが使う数字(2進数)

それに比べて 2進数は 0 と 1 しか数字を使いません。「0」「1」まで数えたら 1つ桁が上がります。0 だったものが 10 になります。2進数での 10 は 10進数での 3 にあたります。なんだか変な感じですね。

とはいえ、コンピュータだけが特別というわけでもありません。私たちの生活のまわりには 10進数以外の計算をしているものも実は結構あったりします。

私たちのまわりの10進数以外の計算をしているもの

  • 鉛筆を数えるのに使うダース:12になったら 1に戻る(1ダース)ので 12進数
  • 1日:24時間:惑星によって変わる。12進数と言われることもある
  • 1寸(すん):30.3mm
  • 1インチ: 25.4mm
  • 1マイル: 1.60934キロメートル

4. コンピュータはどうやって10進数を表現している?

ではコンピュータはどうやってわたしたちが使う 10進数を表現しているのでしょうか?

これには分かってしまうととてもカンタンな計算方法があります。これは高校の数学でも習います。

5. 10進数から10進数を求める方法

まず最初に 10進数からどうやって 10進数を求めるかを考えてみましょう。

これは私たちがふだん何も考えずにやっていることですが、次のように 1桁(ケタ)目は 1を掛けて、2桁目は 10 を掛けて、3桁目は 100 を掛けて、、というのを計算していき、最後にこれらを全て足した数が 10進数ということになります。

たとえば 6237 という 10進数の数字は次のように計算します。

  1. 6237 のうちの 4桁目の 6 と 1000(これは 10 x 10 x 10)を掛ける
  2. 6237 のうちの 3桁目の 2 と 100(これは 10 x 10)を掛ける
  3. 6237 のうちの 2桁目の 3 と 10(これは 10)をかける
  4. 6237 のうちの 1桁目の 7 と 1 をかける
  5. 最後に上の計算結果全てを足すと 6237 になる

なお、上で 10 の右上に 3 と書いているうちの 3 は 10自身を何回掛けるかを示しています(10掛ける 3ではなく 10を 3回掛ける)。

ちなみになぜ 0乗が 1になるかは下のサイトが参考になります。

なぜ2の0乗が1になるのか3分でわかりやすく解説

6. 2進数から 10進数を求める方法

それでは続いて 2進数から 10進数を求める方法を見ていきましょう。

2桁の場合も考え方は同じです。

  1. 1001 のうちの 4桁目の 1 と 8(これは 2 x 2 x 2)を掛ける
  2. 1001 のうちの 3桁目の 0 と 4(これは 2 x 2)を掛ける
  3. 1001 のうちの 2桁目の 0 と 2(これは 2)をかける
  4. 1001 のうちの 1桁目の 1 と 1 をかける
  5. 最後に上の計算結果全てを足すと 9 になる

7. ビットとバイト

2進数の桁数について話がでたので一緒にビットとバイトについても見ていきましょう。

2進数のこの 1桁のことをビットと呼びます。1桁の 2進数なら 1ビットですね。2桁なら 2ビット、3桁なら 3ビット、8桁なら 8ビットです。2進数で 8桁の数字を使うと最大で 255 までの数字を表すことができます。この 255 まで表せる 8桁のことを 1バイトと呼びます。

私たち人間にはあまりなじみのない 2進数ですが、コンピュータはいつも 2進数で考えています。2進数のことをよくわかっていればコンピュータのこともよく理解できるようになるかもしれませんね。