揭開整數中前導零的謎團
您在Visual Studio 2013 中觀察到的行為反映了在Visual Studio 2013 中表示整數的規則不同的基數,特別是十進制、八進制和十六進制。
整數C 中的文字可以以零開頭來表示各種基數:
在你的例如:
嘗試分配 08 時編譯器錯誤是因為 8 不是有效的八進位數字。它僅在 7 以內有效。
從 00016 轉換為 14 的原因是八進位文字中的前導零表示該數字以 8 為基數。編譯器透過將每個數字相乘來執行轉換按其對應的 8 次冪,從右到左開始。
對於00016,這表示:
0 * 8^4 0 * 8^3 0 * 8^2 1 * 8^1 6 * 8^0 = 14
因此,您觀察到的行為是編譯器基於以下內容解釋數值的結果它們的前導數字以及C 中不同鹼基的規則。
以上是為什麼前導零會改變 C 中的整數值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!