2進数を使って数えよう
今回も教材なしのプログラミングです♪
紙もペンも使わずに、指だけで2進数を勉強してみましょう。
対象年齢は小学校1年生〜ですが、2進数って何?って人も対象になります。
「進数」って聞くと難しそうですかね??
でも絶対大丈夫です!難しい計算も出て来ません!
指だけで2進数の考え方を勉強しちゃいましょう!
それと指導案というタグをつけていますが、学校の先生方が作るガチのやつではないので、ヒント程度に思ってくださいね。
片手で数えられる数
突然ですが、問題です。
この問題を出すと、大抵答えが二つに別れて返ってきます。
- 指は5本あるから、5つ!
- 指は何度も使えるから、幾つでも!
さぁ、どちらが正解でしょう?
答えは…
どちらも正解ですね💦
やはり曖昧な問いはダメですね。もうちょっと制限してみましょう。
問題をちょっと変えてみます。
ただし、一度出した指の形は二度と使えないものとします。
これは例えば、次のようなことです。
- 親指だけを折り曲げて「1」と数えます
- そのまま人差し指を折り曲げて「2」と数えます
- 続けて中指を折り曲げて「3」
- 薬指を折り曲げて「4」
- 小指を折り曲げて「5」
- その次に小指を立てて「6」 ← NG
なぜNGか分かりますね?
そう。
上の薬指を折って「4」を数えた場合と区別がつかないからです。
10進数
では、同じ指の形にならないように数えてみましょう。
いろんな数え方をする子がいて楽しいですよ。
どうですか?
5までしか数えられないですね🖐
私たちが自然と使っている数の数え方は「10進数」と言います。
これは0,1,2,3,4,5,6,7,8,9,10、と10個ごとに桁数が上がっていく数え方ですね。
桁数が上がっても10個数えて桁が上がるのは変わりません。
00,10,20,30,40,50,60,70,80,90,100となりますね。
実はこの数え方をしていると、どうしても同じ指の形になってしまいます。
なので、考え方を変えて数える必要があるんですね。
では、どんな数え方をするんでしょうか?🤔
2進数
そこで使うのが「2進数」です。
2進数はプログラミングにとって非常に重要です。
全然難しくないので、しっかり覚えましょうね。
さて、ここで問題です。
では、2進数で使う数字はいくつか分かりますか?🧐
答えは「0と1」です。
たった2つしか使いません。
「え?0と1しかなかったら2とか3はどうやって数えるの???」と思いますよね。
ちゃんと2も3も表現できますよ。
やってみましょう。
右手で2進数を数えてみよう
まず、右手を開きましょう。
2進数は0と1しか数字がありませんから、指の状態を次のように割り当てます。
- 0 = 指を立てる(OFF)
- 1 = 指を折る(ON)
したがって、指が全て立っている(=じゃんけんのパー)は、0ということになります。
ここから数えていきましょう。
まず右手の5本の指を次のように表します。手のひらをご自身に向けて、次の図と見比べてくださいね。
(*言うまでもないと思いますが、小=小指, 薬=薬指…親=親指のことです💦)
小 | 薬 | 中 | 人 | 親 |
0 | 0 | 0 | 0 | 0 |
5本の指を立てた状態は、上の通り全て0ですね。
1はどうする?
次は1を作ってみましょう。
2進数も10進数でも1の作り方(指の形)は変わりません。
右の手のひらをご自身に向けた状態で、親指を曲げると1になります。
小 | 薬 | 中 | 人 | 親 |
0 | 0 | 0 | 0 | 1 |
2はどうする?
さあ、次が問題です。
どうやるか分かりますか?🤔
ここで、10進数の考え方を思い出しましょう。
10進数は
- 0,1,2,3,4,5,6,7,8,9の10個の数字を使い、
- ひとつずつ数字があがっていき、
- 9まで進んだら桁が上がって10となります。
2進数もこの考え方と同じです。使える数が0,1しかないのが10進数と違いますね。
ここまで言えば感のいい子はすぐに答えを出しますが、一旦みんなの答えが出るまで待ってあげてくださいね。
答え
答えは次の通りです。
小 | 薬 | 中 | 人 | 親 |
0 | 0 | 0 | 1 | 0 |
順番に見ていきましょう。
まず、右の手のひらを00000の五桁の数字に見立てます。
この状態が0ですね。10進数でも0です。
一桁目を1にします。これが2進数の1になります。
次に2を作りますが、2進数で使って良い数字は0と1だけです。一桁目にはすでに0と1を使っているので桁が上がります。
桁が上がるので人差し指がON(曲がります)に、親指は0になります。
難しい???
もし子供達が難しい!と言ってきた場合は、次のフローチャートを見せて教えてください。
機械的に置き換えられるので、簡単ですよ。
結局、いくつまで?
さて、2進数の数え方は分かりましたね?
では、片手でどこまで数えられるかみてみましょう。
いっせーので答えを全員で言ってもいいですし、一人ずつ発表でもいいと思います。
答えはどうなりますかね??
では、答えを発表します!
片手で数えられる数字
小 | 薬 | 中 | 人 | 親 | 10進数 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 1 | 0 | 2 |
0 | 0 | 0 | 1 | 1 | 3 |
0 | 0 | 1 | 0 | 0 | 4 |
0 | 0 | 1 | 0 | 1 | 5 |
0 | 0 | 1 | 1 | 0 | 6 |
0 | 0 | 1 | 1 | 1 | 7 |
0 | 1 | 0 | 0 | 0 | 8 |
0 | 1 | 0 | 0 | 1 | 9 |
0 | 1 | 0 | 1 | 0 | 10 |
だいぶ指がきつくなって来ましたか?
慣れてくるとスイスイできるようになりますよ。まだ全部の指を使い切っていないので、続けますね。
小 | 薬 | 中 | 人 | 親 | 10進数 |
0 | 1 | 0 | 1 | 1 | 11 |
0 | 1 | 1 | 0 | 0 | 12 |
0 | 1 | 1 | 0 | 1 | 13 |
0 | 1 | 1 | 1 | 0 | 14 |
0 | 1 | 1 | 1 | 1 | 15 |
1 | 0 | 0 | 0 | 0 | 16 |
1 | 0 | 0 | 0 | 1 | 17 |
1 | 0 | 0 | 1 | 0 | 18 |
1 | 0 | 0 | 1 | 1 | 19 |
1 | 0 | 1 | 0 | 0 | 20 |
1 | 0 | 1 | 0 | 1 | 21 |
1 | 0 | 1 | 1 | 0 | 22 |
1 | 0 | 1 | 1 | 1 | 23 |
1 | 1 | 0 | 0 | 0 | 24 |
1 | 1 | 0 | 0 | 1 | 25 |
1 | 1 | 0 | 1 | 0 | 26 |
1 | 1 | 0 | 1 | 1 | 27 |
1 | 1 | 1 | 0 | 0 | 28 |
1 | 1 | 1 | 0 | 1 | 29 |
1 | 1 | 1 | 1 | 0 | 30 |
1 | 1 | 1 | 1 | 1 | 31 |
やっと全部の指が曲がりました。
と言うわけで、答えは31までですね。0も数えると32個まで数えられます。
両手で数えられる数字
では、両手で数えられる数は幾つでしょうか?
では、ここでヒントを出します。
指が一本だけ立った状態に注目してください。
右手 | 10進数 | ||||
小 | 薬 | 中 | 人 | 親 | |
0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 1 | 0 | 2 |
0 | 0 | 1 | 0 | 0 | 4 |
0 | 1 | 0 | 0 | 0 | 8 |
1 | 0 | 0 | 0 | 0 | 16 |
2進数で桁が増えていくと、10進数の数がどうなるか分かりますか?🧐
そう! 2倍になっていきます!
では、左手を追加してみましょう。
左手 | 右手 | 10進数 | ||||||||
小 | 薬 | 中 | 人 | 親 | 小 | 薬 | 中 | 人 | 親 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 8 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 16 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 32 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 64 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 128 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 256 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 512 |
答えは512!と思うのは早いです。違いますよー。
31,32あたりを見た方がわかりやすいかもしれません。
先ほど学んだように、右手だけだと31まで数えられますね。この31というのは、右手の指が全部折れ曲がった状態です。
左手 | 右手 | 10進数 | ||||||||
小 | 薬 | 中 | 人 | 親 | 小 | 薬 | 中 | 人 | 親 | |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 16 |
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 31 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 32 |
つまり、2の5乗 – 1が右手で数えられる最大の数になります。
25 = 32 ですから、そこから1を引けば31になりますね。
では、10本の指を使った場合は???
同じ式で求められますので、簡単ですね。
210 – 1 = 1023
となります。
なんと!両手の指だけで1023(0を含めると1024個)まで数えられるんですねー😳
2の乗数は小学生では理解しにくいので、もし教える場合は乗数ではなく上の図の「1,2,4,8,…256,512を全部足した数」になるとした方が良いかもしれません。
最後に
今日は手だけでプログラミングの勉強をしました。2進数はとっつきにくいかもしれませんが、プログラミングの基礎となるので覚えておいて損はありません。
1024まで数えるのは大変ですし、乗数を教えるのも難しいと思いますので、小学生の間は片手で数えられる数字として31(0を含めると32)という箇所まででもいいかもしれませんね。
何事もちょっとずつですね♪
ではまた🤗
コメント