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 進数
理由: この辺にそれっぽいことがかいてある。(この資料、表記がすごく読みにくいけど)
「だからどうした、ゼロはゼロだ」と言われたらその通りなんだけどね…。どうせコンパイラ(ごく一部の処理系ではインタプリタ)を通したら出力先(大抵は実行バイナリ(用の中間ファイル)。中間言語かもしれない)に都合が良い数値リテラル(大抵は二進整数)になるだけだし。
- 08/04/21
12:5512:56
コメント
コメントはありません。