C/C で数値定数の前に「0」を付ける
質問:
理由C/C で接頭辞「0」が付いた整数定数は、期待とは異なる値に評価されますか?たとえば、定数 '0123' を使用すると、値は 123 ではなく 83 になります。
答え:
C/C およびその他のプログラミング言語では、数値定数を使用できます。それらが表す数値の基数を示すために、異なる接頭辞を接頭辞として付けることができます。接頭辞「0」は、8 進数 (base 8) 定数を示します。
コンパイラは、接頭辞「0」が付いている数値定数を検出すると、それに続く数字を 8 進数として解釈します。 「0123」の場合、(0 8^3) (1 8^2) (2 8^1) (3 8^0) として扱われます。 10 進数で 83 と評価されます。
これは、「0」で始まる数値定数が 8 進数として扱われるという C/C 言語仕様と一致しています。このルールは、整数定数と浮動小数点定数の両方に適用されます。
C/C プログラムで数値データを正確に表現し、解釈するには、数値プレフィックスの役割を理解することが重要です。
以上がC/C で `0123` が 83 と評価されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。