トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

2進数表記

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秒