「二進法」こどもに説明できますか?スッキリわかって説明できる簡単な方法!
二進法の仕組み
別に数学が得意なわけでもないし理系ですらないけど、コンピューターに頼った生活を送っている以上、理解はしておいた方がいいよね、と思う「二進法」。
聞けば、カミさんもよくわかってない状態だったので、ちょっと図にしてみました。
ホラ、これならわかるっしょ?
ほうほう、だから「6」なら「110」で、「7」が「111」、次に「8」だと位が上がって「1000」ね。
分かった気になるよね~。うんうんわかる。
じゃ、「1011001」は?
ん?
これがもう、一つの“壁”ですよね。桁数というより逆算ができない。
まぁ、そんな時は急がば回れです。
60進法ならわかるんじゃない?
みんな馴染みのある「60進法」で考えてみましょう。幼児教育でもやる子もいるし、小学校で習いますよね。さすがにみんな理解してるはず。
じゃ、「3846秒」って、何時間何分何秒?
10進法で「秒」で表された秒数を60進法の時分秒になおすのは面倒だけど、やり方はわかるはず。
60進法の仕組みは、「60進んだら位が一つ上がる」です。だから、60で割っていけばわかるわけです。
3846÷60(分=つまり1時間)=64分と、あまりが「6」秒
「64分」を「60(秒)」で割ると、「1」時間と、あまりが「4」分
つまり、「1時間4分6秒」となります。
この、下から逆のL字で登っていく「型」を覚えておきましょう。
では、逆算はどうする?
たとえば、3時間12分46秒は、何秒?
つまり、10進法の世界の数字に変換するには、こうなります。
「時」には、3600を掛ける つまり「時」は、3600秒の位
「分」には、60を掛ける つまり「分」は、60秒の位
「秒」はそのまま 「秒」なので1秒の位
それぞれ位ごとに秒に換算したものを合計するのが解法。
時間の場合、さらにちょっと厄介なのが「日」は24進法で、「年」は365.25進法なので厄介です。
しかも、正確には1年は365.24219日なので、グレゴリオ暦ではうるう年の例外として、西暦年号が100で割り切れて400で割り切れない年を、「うるう年ナシ!」として、365.2425日に換算しています。
実際にはこれでも1000年で1日ぐらいズレるらしいけど、修正方法は決まってないんだそうです。
時間の場合は、1日は「86400秒」とか、「1440分」とか、あるいは、30日は「720時間」、31日は「744時間」を覚えちゃうのが便利です。ICTの仕事に関わる人にとっては、86400秒とか3600秒とかなじみ深い秒数ですよね。
どんどん、脇道にそれていく・・・
もしも「4進法」だったら?
では、話を戻します。
特に人生の間に登場機会はないかもしれないけど、もしも「4進法」で考えなければならない時代になったらどうでしょう?
「4進んだら位があがる」のが4進法。
時間の例で試したように10進法の数値を4進法にするにはできますよね。やり方は同じで「4で割っていく」ことになります。
たとえば「423」を4進数で表現すると、
になります。
これを、最後の除算結果「1」と、あまりの値を、下から順に並べると、
「1」「2」「2」「1」「3」で、「12213」という値が、4進法における「423」ということになります。
逆算の場合も同じことです。
あんまり身近な例えがないので、4進法の位を左の桁から「ロクヨン」「イチロク」「ヨン」「イチ」としましょう。
4進法の世界の「3101」は、
つまり重要なのは「位」の概念
10進法の世界だって、
「いち(一)のくらい」
「じゅう(十)のくらい」
「ひゃく(百)のくらい」
・・・
「ちょう(兆)のくらい」
って、覚えましたよね。
そういえば、お金(貨幣や紙幣)ってそうなってます。
100円玉が10枚あったら、1000円札にしたいし、千円札が10枚あれば一万円札にしたい。そして、10000万円札には100円玉が100枚、あるいは10円玉が1,000枚含まれていることは、イメージできると思います。
10進法から2進法の解法(すだれ算)
というとは、2進法も同じことで、
「一の位」
「2の位」
「2×2の位」(なんで×かというと、10円玉が10枚あるから100円=100の位と同じこと)
「2×2×2の位」
「2×2×2×2の位」
え?もう「位」があがるの?
っていうぐらい、すぐに位があがります。なにせ「二進法」ですから。
今日一年生なら明日は二年生です。(ちょっと違うけど)
という具合に、2進法における「位」が上がるごとに「2のべき乗」(位が進むたびに掛ける回数がひとつずつ増えていきます)になっていることがわかります。
これを、計算する方法として「すだれ算」なる手法が存在します。
たとえば、10進法の世界の「86405」は、2進法だとこうなります。
2進法から10進法への変換
逆の方法は、位ごとに「なんの位」になっているか?ということを考えれば計算可能です。
「1011101」
という2進法の数字がある場合、
1:64の位が「1」なので、「64」
0:32の位が「0」なので、「0」
1:16の位が「1」なので、「16」
1:8の位が「1」なので、「8」
1:4の位が「1」なので、「4」
0:2の位が「0」なので、「0」
1:1の位が「1」なので、「1」
これを全部足すと、「64+0+16+8+4+0+1=93」となります。
どうでしょう?スッキリと理解できたでしょうか?
結論
2進法は「慣れてないから日常で使いこなすのは難しい」けど、「10進法から2進法」に変換する方法は割と簡単。逆に2進法の数値を10進法にするのも、算数レベルの考え方で算出可能です。
ちょっとググってみれば、解法自体はすぐいろんなサイトがヒットします。
ちなみに今の時代はAIがいろいろ答えてくれる時代。
ChatGPTなら解法まで解説付きです。
ま、検算にはこちらのサイトのお世話になりました。
https://www.peko-step.com/tool/nsin.html
でも、その解法自体を公式を覚えたり、それを使えるようになるより(そもそもそんな機会まれですし)、考え方を理解するのが素敵なテーマだと思うのです。
中学校の数学の指導要領からは外れてしまったようですが、こういう頭の使い方はとてもよい数学的訓練になると思うのです。
カミさんに何度もダメ出しされながら図解で補ったので、「n進法」の海を公開する羅針盤として、これなら多くの航海士たちの助けとなるでしょう。