C/C の数値定数プレフィックスについて
C/C で数値定数を記述する場合、数値の前に使用されるプレフィックスは重要な意味を持ちます解釈された値が変更される可能性があります。このような接頭辞の 1 つは '0' で、これは 8 進 (base-8) 定数を表します。
数値定数 '0123' が整数変数に割り当てられた場合を考えてみましょう。基数 10 (10 進数) では、この値は確かに 123 を表します。ただし、接頭辞「0」が付いているため、8 進定数として解釈されます。
8 進数の 2 進表現では、各桁は次のようになります。特定の値:
「0123」は 8 進数の定数なので、次のように変換できます。各桁を 2 進数に対応させます:
これらの 2 進数を連結すると、000001001011 が得られます。これを基数 10 (10 進数) に変換すると、値 83 が得られます。
したがって、C/C の数値定数の先頭に「0」は 8 進定数を意味し、値はそれに応じて解釈されます。この動作は、C と GCC コンパイラを使用した C の両方で一貫しており、浮動小数点定数でも一貫しています。
以上がC/C で「0123」が 83 に等しいのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。