整数の先頭ゼロの謎を解明する
Visual Studio 2013 で観察された動作は、整数を表す規則を反映しています。さまざまな基数、特に 10 進数、8 進数、および16 進数。
C の整数リテラルは、さまざまな基数を表すためにゼロから始めることができます。
この例では:
08 を割り当てようとしたときにコンパイラ エラーが発生するのは、8 が有効な値ではないためです。 8 進数。 7 までのみ有効です。
00016 から 14 への変換の理由は、8 進数リテラルの先頭のゼロが、その数値が基数 8 であることを示すためです。コンパイラーは、各桁を乗算することによって変換を実行します。右から左へ、対応する 8 の累乗で計算します。
00016 の場合、これは次のように変換されます。 to:
0 * 8^4 0 * 8^3 0 * 8^2 1 * 8^1 6 * 8^0 = 14
したがって、観察された動作はコンパイラの結果です。 C の先頭の数字とさまざまな基数の規則に基づいた数値の解釈。
以上がC で先頭のゼロによって整数値が変更されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。