2000/11/25
2001年問題?の話
2000年問題が終わったと思ったら今度は2001年問題というのが出てきました。初め見たときはコンピュータを知らない人が作ったのか、面白い冗談だなぁと思ってたら本気で通達とか来たりして、かなり笑えることになっています。
2001年問題をちょっと説明します。2001年問題というのは国際時間2001年の9月9日午前1時46分40秒に発生する問題で、コンピュータの時間というのは基本的に1970年1月1日午前0時0分0秒からの通算秒で表わしますので、ちょうど1000000000秒になるという話です。つまり、これを文字列化すると9桁から10桁になり、桁数があふれるという話です。しかし、この問題は発生しそうで決して発生しないことは一目見ただけでわかります。そもそも通算秒を文字列変換するということはまず取られない手法です。数字は数字のまま扱えばいいわけでわざわざ文字列にしてそれを演算に回したり、わざわざ文字列を表示したりすることは考えられません。しかもコンピュータの世界は2進数であり、10進数で何かを行うということは内部的にはありえないのです。このような状況が考えられるケースを想定してみると、最初に思いつくのは2000年問題のときに取りざたされたメモリ不足のため、というのが考えられます。2000年問題はまだメモリが少ないころに1980年と表記するよりも80年と表記したほうがメモリが少なくて済む、という理由で発生しましたが、2001年問題の場合、メモリが足りないなら文字列ではなく数値のまま記録すればよいだけです(数値で記録する場合、1000000000秒はたった4桁で済みますし、4294967295秒まで大丈夫です)。つまり今回の2001年問題が発生するためには、「何故かまったく意味のないことに1970年1月1日からの秒数をわざわざ文字列に変換し、しかもその文字列が9桁分しか用意されていない」というあまりに特殊で意味がないため、普通はやらないようなことをしていた場合のみに発生します。
この問題が発生しうるような状況は私が無い知恵をどんなに絞ってもまったく想像できません。誰か知っていたら教えてください。


 

Topへ