最近、職場の子にプログラミングの基礎的なところを教えることがありました。昔なつかしいROMライターでROMの中身を読み込み、読み込んだバイナリデータの正誤を判定するスクリプトを作ってもらいました。バイナリデータなので、16進数については理解していないと中身を検討することもままなりません。どうもそのへんの理解が曖昧だったようなので、簡単に確認をしました。
FF + 1 がわからない
16進数は0-Fまでを数値として扱う、つまり F + 1 = 10、1F + 1 = 20となる、では FF + 1 は?と聞くと、キョトンとした様子。今にして思うと彼も戸惑ったのでしょうが、私も戸惑いました。私の感覚では、9 + 1 = 10、19 + 1 = 20、なら 99 + 1 = 100 ですよね、のように至極明快かつ簡単な論理だと思ったのですが…。
家族にその話をしたところ、そんなんすぐにわからんわ、とのことで、ふぅむと考えさせられました。ならばなぜ、皆当然のように10進法の加減算ができるのだろう。やっていることはそれと同じで、9 + 1 =10 が自明ならば16進数において F + 1 = 10 となるのも自明ではないのか、どちらも同じ単なる桁上りではないか、と。数字を一つ一つ書いていって、Fの次はもうないからF + 1=10だよね、というとなるほどと言うのですが、ではFF + 1 はなんでしょうと聞くと、わからない、と。理系のことに関心のある父は長いこと考えた末、100か、と答えに辿り着いたようですが、それでもそこに至るまでに想像していた以上の時間がかかっており、不思議でした。
慣れの問題?
自分には16進数でひっかかった記憶がないし、周りにもそこでひっかかったという人はいなかったように思います。やはりそこは、一応理系の勉強をしてきたからと言ってよいのでしょう。母は10区切りじゃないなんて意味がわからないと言いますが、では60分で1時間になるのは意味がわからないのか、というとそんなことはないわけです。私たちは10進法以外の考え方も、日常から学んでいます。ただ、しっかりと身についてはいないのでしょう。理系を志した人は、小学生時代の算数よりそれなりの計算問題をこなしてきていますから、数、桁の感覚が平均よりも鋭いということはありそうです。だから16進数を習ったときもさほどの違和感なく受け入れることが出来た、と考えると、単に慣れの問題なのかな、と思えます。まぁ、恐らくその要素は大きいでしょう。
ゼロの概念
しかし、少し深く考えてみると、そこにはゼロの概念の希薄さがあるのではないか、とふと思いました。昔、10という書き方はゼロの概念なしには出来ないと何かの本で読み、たいへん感心した覚えがあります。このような書き方は位取り記法と呼ぶそうですが、256を256と理解するのと二百五十六と理解するのでは、その理解のしやすさに大きな差がありますから、よく考えてくれたものだと思いました。
そうして考えると、9の次を10、Fの次を10と考えるには、ゼロの概念が必要です。もちろん我々は知識としてゼロを知っていますが、知っていることとそれを腹から理解していることはまったくの別物です。実際、説明しているときに、Fの次に10になると言うと、「15個しかないのにどうして16進数なの?」と問われ、どうも頭から0が抜け落ちている様子でした。一方、2進数が0と1という説明は違和感なく受け入れられたのですが、これは16というすぐに数えられない大きな数字が頭の中の思考を抽象化させ、実は不十分であった理解を露呈させたのではないか、と思います。理系の人間といえば、小学生時代から多くの計算問題を位取り記法でこなし、また60進法の混ざる時間の計算や、0はもちろんマイナス、さらにはπやeといった無理数も扱い、数そのものに対する理解度が違います。そうしてゼロの概念も醸成され、16進数程度の概念はすぐに習得することができるのではないでしょうか。
……と、まぁ、あまり本気でこんなことを言っていると思われても困りますが、半分遊びの半分真面目くらいの気持ちです。ただ、人は概念を経験で体得する、ということは本当だと考えています(コンピュータとの大きな違いの一つでしょう…機械学習が流行って久しいですが)。そのため、円周率についても私は3.14派です。まず3.14などという実用上必ずしも必要ない精度での計算演習をこなせば、このややこしい、鬱陶しい計算の過程で、円という不思議なものに対する理解が深まる面もあろうと思うのです。算数嫌いを増やしているだけだと言われるとそうかもしれませんが。
ところで、Wikipediaの「位取り記数法 - Wikipedia」には、10進法という表現はある種の混乱を内包しているのでこのような文脈では漢数字を併用することが多い、というような文言がありますが、私は特に気にせず使っています。けれど、これは気にする人はとっても気にするんだろうなぁと、経験的に感じます…いや、本当にすごく、なんというか、臭います。ちょっとした火薬庫の臭い。
コメント