首頁 > 後端開發 > C++ > 主體

為什麼 C/C 中「0123」的計算結果為 83 ?

Barbara Streisand
發布: 2024-11-18 10:13:02
原創
708 人瀏覽過

Why does `0123` evaluate to 83 in C/C  ?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板