fetus Diary

2008/04/21(月) - C 言語の数値リテラル

const int dig = 100;  // ← 10 進数で 100
const int oct = 0644; // ← 8 進数で 644 = 420(10)
const int hex = 0x10; // ← 16 進数で 10 = 16(10)

ここまでは基本。10 進と 16 進はともかく、8 進なんて 0755 とか 0644 しか使わないけどな(実際問題パーミッションくらいしか用途が無い)。

const int zero = 0;

これ、何進数? (いや、何進数だろうとゼロはゼロだから値は 0 なんだけど。

正解: 8 進数

理由: この辺にそれっぽいことがかいてある。(この資料、表記がすごく読みにくいけど)

「だからどうした、ゼロはゼロだ」と言われたらその通りなんだけどね…。どうせコンパイラ(ごく一部の処理系ではインタプリタ)を通したら出力先(大抵は実行バイナリ(用の中間ファイル)。中間言語かもしれない)に都合が良い数値リテラル(大抵は二進整数)になるだけだし。

コメント

コメントはありません。

名前
メール
コメント

※HTML タグは使えません。HTTP URL には自動リンクが張られます。

Captcha
画像から読み取れる文字を入力: