2進数表記
またもやライトな話題。
GCCのオンラインマニュアルを眺めていたら、"0b"または"0B"のプレフィックスで2進数リテラルを表記できることが分かった。しかし、C99では浮動小数点リテラルが16進表記できることが定められているのに、非常にプリミティブな2進表記が仕様に入ってないというのは何とも…。まぁ浮動小数点を10進表記するのは簡単に精度の問題を発生するので、16進で代用できる2進よりも浮動小数点の16進表記の方が重要だったのだろうけど。
最近の多くの言語、特にLightweightLanguageでは文字列→数値変換が言語に組み込まれていたりして、その際に基数を指定できるので、静的なリテラルにこだわらないなら、それらを使用すれば簡単に実現可能ではある。
その後Webをだらだらと回っていたら有名な小飼 弾さんのブログで以下のようなものを見つけた。
JavaScript: num.toString(2);
perl -le 'print 0b1010'
うぉぉぉ、NumberのtoStringにradixが渡せることも知らなかったし、まさかPerlで"0b"がサポートされてるなんて思わなかったなぁ。
びっくりしたのでメモ。
最終更新時間:2009年06月30日 05時47分25秒