唐突ですが二進数って学校で習いましたか?先日母親との雑談の中で私は二進数は習った事ないと言うのでいくら母親の世代でもそれは。。。と思ってたんです。ちなみに16進数も知らないと。


あんたそれ大学でやったんじゃない?と言うのですが、確かにBinaryは基礎科目のどこかでやったとは思います。でも私が元々二進数という日本語の言葉を知っていて計算方法も日本語で覚えていたから最初に習ったのは絶対に高校までのどこかです。


私の場合小学校の時の教科書にチラッと2進数というものがあると言うのだけ書いてありました。なんか信号機みたいな三つの丸があってそれぞれ白だったり黒だったりして、そのパターンで数字を表せますという感じでした。それを黒丸が1、白丸は0と変換すると二進数というみたいな程度でしたが、0から7くらい(3桁)までの例が載っていたような気がします。何となくですがそのページは覚えてるんです。


次に二進数をやったのは多分高校でその時に10進数と二進数の計算の仕方などを習いました。学校の試験にも出たし確か割り算の逆みたいなのを使って1か0のあまりをしたから読んで行くと二進数になるとかあったので、確実に学校の数学の単元で習ってます。


だから母親には習ってないはずないとその時は言い張ったのですが、後でちょっと調べてみたら世代や学校によって違う事がわかりました。ある一定の世代は中学校で習っていたそうで(私はその世代じゃない)、その後は高校の数学Aの教科書に載ったらしいです。(それでも必ずって訳じゃないみたい。) 今は小学生が中学受験の勉強の一環で習う事が多いようです。なので母親の時代には高校でも習わなかったと言うのはどうやら正しい事がわかりました。


仕事ではほとんど二進数は使わないし、今は変換や計算はネットに数字入力してちゃちゃっと出来るんですが、2のn乗というコンセプトを知っている事はIT基礎では重要なんですよね。例えばパソコンのメモリや昔のUSBなどの容量が全て2のn乗の数なのはこの辺に理由があります。なぜ100GBや250GBじゃなくて128GBや256GBみたいに中途半端な数字なのかのはこの辺に起因します。


こんな話を通じない母親に一生懸命に説明していたんですが、実はかつて母親にとっては私より二進数が身近だったことに気付きました。。。今は博物館でしか見れないようなテレックスという機械を大昔母親が仕事で使ってがらしいのですが、そのテープが二進数のはずなんです。当時のその話は何度か聞いた事があるけど、数字を打つと紙のテープに穴が空いていていってそれを本社に送ってそこで決算表とかが印刷されるみたいな。その頃のプログラミングは多分Assembly言語かそれより前くらいなので二進数は多量に出てきていたと思います。


もちろん母親はただ数字を打ってテープを機械にかけてただけですが、二進数が実際の処理に使われてた時代は流石の私も想像出来ないです。数字を打ち間違えるとその箇所を探してテープを切り貼りしてたと。テープの穴で数字が認識出来たと言うのだから言い換えれば二進数が読めてたって事だと思います。


まぁでもまだそんな時代だったからまだ学校で二進数を教えるとかはなかったのかもしれませんね。今のプログラミングでは二進数が出てくるのは特殊な場合のみでそんなの全く知らなくてもプログラミングは全然書けるし必要はないです。ただITに限らず一般的な知識として知っておいた方が良いと私は考えてます。


で、なぜこんな話をブログに書いているのかは自分でも良くわからないんですが、なんか昔の0と1だけの世界にはなんとなく憧れがあるんですよね(苦笑) 理由はわからないんですが。母親とこんな会話をして久しぶりに二進数の変換の計算とかやってみたくなってきました。