在C/C 中為數字常量添加“0”前綴
問題:
為什麼C/C 中以「0」為前綴的整數常數的計算結果是否與預期值不同?例如,使用常數“0123”會得到值 83 而不是 123。
答案:
在 C/C 和其他程式語言中,數字常數可以使用不同的前綴來表示它們所代表的數字基數。 “0”前綴表示八進制(基數為 8)常數。
當編譯器遇到前綴為「0」的數字常數時,它會將其後面的數字解釋為八進制數。對於“0123”,它被視為(0 8^3) (1 8^2) (2 8^1) (3 8^0),其中計算結果為十進制83。
這與 C/C 語言規範一致,該規範規定以「0」開頭的數字常數被視為八進制數。此規則適用於整數和浮點常數。
理解數字前綴的作用對於在 C/C 程式中準確表示和解釋數字資料至關重要。
以上是為什麼 C/C 中「0123」的計算結果為 83 ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!