2009年2月23日月曜日

累進法による日時の表現

日時を表現するとき、それぞれの単位の最大値に合わせた累進法を組み合わせることで簡潔に表現できる。
例えば、月は1月から12月までなので1桁の16進数(1-C)で表せる。12進数0-Bでもよい。
次に、日は1日から31日までなので1桁の32進数で表せる。正確には31進数でよい。10進数より大きな累進法はアルファベットで表すことが多い。数字10文字とアルファベット26文字を組み合わせると36進数まで表せる。32進数は0-9,A-J,K-S,Tで表す。
時間も24進数0-9,A-J,K-Nで表せる。
分、秒は60進数であるからアルファベットでは足りない。しかし、アルファベットには大文字と小文字があるので、これを区別すれば10+26+26=62進数まで表現できる。ASCII符号の順に、数字、英大文字、英子文字の順に大きくなるとする。すると60進数は0-9,A-Z,a-xで表せる。
ただし、年は無限に大きくなるので累進法の拡張でもうまく表現できない。
いうまでもないが、このような英字を用いた累進表現は計算機屋でなければ使わないので、一般的に広まることはないだろう。あえて日時を簡易的に符号化するときにしか使わないかもしれない。

0 件のコメント: