お買いものをするときや、宿題の答えを書くとき、どうやって数を数えていますか?
「ヘンな質問するなぁ、そんなの決まってるじゃん」と思うかもしれませんね。
1, 2, 3, … 9, 10, … という、いつも見ている数字たちは「10進数(じゅっしんすう)」という数え方です。
でも、コンピュータの中では、ちょっとちがいます。
0 と 1 の 2つだけで数える「2進数(にしんすう)」という数え方を使っているのです。
はじめて聞くと、
- なんで 0 と 1 だけなの?
- ふつうの数字の方がわかりやすくない?
- どうやって数が増えるの?
と、いろんな疑問がわいてくるかもしれません。
そこで、この記事では、むずかしい言葉をできるだけ使わずに、コンピュータと 2進数 のひみつをていねいに説明します。
さらに、子ども向けプログラミング言語 ビスケット(Viscuit) を使って、2進数を見えるかたちで数える方法も紹介します。
さあ、いっしょに 0と1だけの数え方の世界をのぞいてみましょう!
「10進数」とは
私たちがふだんの生活で使っている数え方が「10進数(じゅっしんすう)」です。
10進数は、0~9の10種類の数字を使って数えていくルール(10進法)でできています。
0、1、2、3、4、5、6、7、8、9 と進み、
9 の次は 10 になってケタがひとつ増えます。
位(くらい)は右から順に
- 1の位
- 10の位( 1×10)
- 100の位( 10×10)
- 1000の位(100×10)
と10倍ずつ大きくなっていきます。
昔の人は、物を数えるときに 自分の10本の指 をよく使っていました。
そのため、「10をひとまとまりにする数え方」が自然に広まり、今の10進数につながっていると言われています。
つまり、10進数は 人間にとってとてもなじみやすい数え方なんですね。
「2進数」とは
「2進数(にしんすう)」は、0 と 1 の 2種類だけ を使って数える方法です。
こちらも「2進法」というルールにしたがっています。
10進数と同じように数は増えていきますが、ケタが変わるタイミングがちがいます。
0、1 と進み、
1 の次は 10(イチ・ゼロ) になってケタがひとつ増えます。
「えっ、なんで急に 10 が出てくるの?」と思うかもしれませんが、これは1の次の数字がないので、次のケタに進むしかないのです。
2進数の位は右から順に、
- 1の位
- 2の位(1×2)
- 4の位(2×2)
- 8の位(4×2)
と、2倍ずつ大きくなっていきます。
10進数と2進数の数え方のちがいを、表でくらべてみましょう。
| 10進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2進数 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 |
10進数が「0~9」、2進数が「0~1」と使う数字が少ないだけで、数え方のきまりはとても似ているんですね。
コンピュータは2進数を使っている
私たちが画面で見ている文字や画像、音などは、コンピュータの中に「そのままの形」で入っているわけではありません。
コンピュータが あつかう すべての情報は、「 0 と 1 の組み合わせ」でできています。
そのため、画像や音などのデータは、いったん コンピュータが理解できるように 0 と 1 のならんだ数字に置きかえられています。
そして、コンピュータがその 0 と 1 を読み取って、私たちに見えたり聞こえたりする形に作りなおしているのです。
どうしてコンピュータは2進数を使うの?
私たち人間にとっては10進数が使いやすいのに、どうしてコンピュータは2進数を使うのでしょうか。
人間は、指でさわれば「熱い・冷たい」「すべすべ・ザラザラ」など、たくさんの情報を感じ取れますよね。
でも、コンピュータは電気で動く機械なので、わかるのは次の2つだけです。
- 電気が流れていない(OFF) → 0
- 電気が流れている(ON) → 1
コンピュータは、この2つの状態を組み合わせて、文字も音も画像もぜんぶ表現しています。
0 と 1 だけで あつかうと、
- まちがいが起こりにくい
- 機械の仕組みを作りやすい
- 安定して動く
- とても速く処理できる
という良いことがたくさんあります。
だからコンピュータにとって、2進数はいちばん使いやすい数え方なのです。
ビスケット(Viscuit)で2進数を表現してみよう!
ビスケット(Viscuit)で2進数を表現するプログラムを作ってみましょう。
ビスケットの使い方は、下の記事にまとめています。
今回のプログラム ~10進数と2進数のカウントアップ~
「+1」ボタンをおすと、数が1ずつ足されます。
上が10進数、下が2進数です。
10進数と2進数のカウントアップの完成プログラムは、下のリンクから確認できます。
部品
- 「+1」ボタン
- 下線
- +マーク
- 10進数用の数字(0~9)
- 2進数用の数字(0、1)
ステージの配置
ステージの設定は、一番大きいサイズの方眼紙にします。
めがね
めがねを作る前に、10進数と2進数それぞれの数え方を思い出してみましょう。
- 10進数の数え方
0、1、2、… 8、9と数えていき、9の次は10になって1ケタくり上がる。 - 2進数の数え方
0、1 と数えていき、1の次は10になって1ケタくり上がる。
先を読む前に、どんな めがね になるのか、自分で考えてみてくださいね!
「+1」ボタンをおしたら
「+1」ボタンをおすと、10進数と2進数それぞれの1の位に+マークがつく片めがねです。
1の位とほかの位を区別するために、1の位にはアンダーラインの部品をつけています。
カウントアップ(10進数)
数字の上に「+」マークが表示された時、1足された数になるメガネを作ります。
0~8まで作りましょう。
9の上に「+」マークが表示された時はくり上がります。
9が0に変わり、0の左上(次の位の位置)に「+」マークを表示します。
カウントアップ(2進数)
2進数のバージョンも作りましょう。
10進数と何がちがうのか考えてみてくださいね。
実行して比べてみよう!
あそぶ画面でプログラムを動かしてみましょう。
「+1」ボタンをおした時、10進数と2進数、両方とも1足されたでしょうか。
10進数と2進数の数え方のちがいを比べてみてくださいね。
まとめ
この記事では、ふだん私たちが使っている10進数 と、コンピュータの中で使われている2進数のちがいを学びました。
さらに、なぜコンピュータが「0 と 1 だけ」で動いているのかも知ることができました。
- 10進数は 0~9 の10種類の数字を使う数え方
- 2進数は 0 と 1 だけを使う数え方
- コンピュータの情報は すべて 0 と 1 の組み合わせでできている
- 電気は「流れている」「流れていない」の2種類しかあつかえない
- だからコンピュータは 2進数がいちばん向いている
2進数はむずかしそうに見えますが、しくみはとてもシンプルです。
「0 と 1 の2つだけ」で考えることで、コンピュータが速く・正確に動けるという大きな利点があります。
Viscuit(ビスケット)で10進数と2進数のカウントアップをくらべてみると、仕組みのちがいがよく分かったと思います。
もし興味がわいたら、3進数や4進数、8進数 など、他の数え方でもプログラムを作って遊んでみてくださいね。
「【子ども向け】データ量の単位「ビット」と「バイト」をわかりやすく解説」では2進数と関係の深いデータ量について解説しています。
「【子ども向け】コンピュータと色の話。光の三原色(RGB)とカラーコードを分かりやすく解説」では16進数について解説しています。
















