60進数

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2601.html
※めちゃくちゃ意訳

C++における60進数サポートの提案
Lawrence Crowl, crowl@google.com, Lawrence@Crowl.org


C++は8,10,16進数をサポートしているが、驚くべきことに60進数サポートがない。60進数は時間をあらわす基盤なのに…。
時刻を表すのに10進数だと時、分、秒でそれぞれ2文字ずつ、さらに間に分割記号が2つ要る。だが60進数なら3文字で済むし、分割記号も不要だ。字数が減って経済的。ぜひC++で直接サポートするべきだ。

問題は、60進数の各桁の数をどう表すか。16進数を拡張するのが自然だが、0〜9と英小文字では足りない。大文字も使えば足りるが…。だいたい基数記号("0x"のような)をつけてしまったら字数が増えて、経済的とは言えなくなってしまう。

実は、この問題は古代バビロニアの時代にとっくに解かれている。下手にASCII文字をこねくり回すくらいなら、歴史的に有効性が実証されているバビロニア楔形文字を使ったほうがいい。

というわけで、楔形文字を60進数リテラルとして採用することを提案する。

例えばは10×60+4×60+50+6、つまり10進数で896を意味する。

もちろん、日付は

ISO/IEC JTC1 SC22 WG21 N2601 = 08-0111 - 2008-04-01

です :-)