« ニセディズニーランドとLinux | トップページ | ゼノブレイドが面白い »

0起算に対する思い入れ

 私は考え方が独特なようで、あんまり理解されていないような気がするのですが、今回の記事はその色が濃いことを先に断っておきます。

 今から12年も前に話題になったことですが、2000年は20世紀であり、2001年から21世紀が始まりました。これは少し分かりにくく、とても不自然で、義務教育を受けていた頃から気に入らなかった事実です。西暦を100で割ったら世紀になるようになっていれば良かったのにと思います。なぜこのようになってしまったかといえば、最初の年が西暦1年1世紀だからに他ならないと思います。100年で区切るので西暦100年まで1世紀が続き、西暦101年から2世紀が始まるのです。

 もし西暦0年0世紀から始まっていれば、西暦0年から99年までが0世紀で、西暦2000年から2099年までが20世紀となり、西暦を100で割れば世紀が求まるという、シンプルで分かりやすくなっていたのです。ところが実際は、西暦から世紀を求めるには次のように1を足したり引いたりしなければなりません。
世紀 = floor( (西暦-1)/100 )+1

 プログラミングの分野では、符号無し整数の最小値は大概0ですし、C言語から派生してきた言語では配列の要素番号は0から始まります。配列の要素番号が1から始まってしまうと、先ほどの世紀のような面倒くさい計算があちこちで必要になってしまうからだと思われます。

 こういう理由でデータに連番をつけるときに1から始めるのは避けたいのですが、どういうわけか(?)ファイル名につける連番を1から始めようとする人が多くてときどき気になります。0番のファイルに特別な意味を持たせたいから予約しておくというなら理解できるのですが、特に何もないなら0番から初めてほしいと思います。1から始まっているのを見ると、この人にとっては0の発見がまだ済んでいないのだろうかなんて思うこともあります。

 0起算を是非とも採用してくれと強く思うのは時間の表記です。ある時計は、1時間経過するごとに次のように表記が変わっていくのです。

AM 11:00
PM 12:00
PM 01:00

 これは12進法と考えることができますが、11時から12時になるときに繰り上がってAMからPMへ変わり、PM12時からPM1時に変わるときは繰り上がりもしないのに数字が小さくなります。こんな不自然な数値の増え方があってたまるかと思います。

 もしAM11時の次がAM0時と表示するようにすれば、11時から0時に切り替わるときに繰り上がってAMからPMになり、0時から1時に変わるときは数字がちゃんと増えるという自然な変化になるのです。

|

« ニセディズニーランドとLinux | トップページ | ゼノブレイドが面白い »

「日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/43621/44706242

この記事へのトラックバック一覧です: 0起算に対する思い入れ:

« ニセディズニーランドとLinux | トップページ | ゼノブレイドが面白い »