前導零會混淆整數解釋
處理整數文字時,前導零的存在可能會產生意想不到的後果。考慮以下程式碼:
System.out.println(0123); // prints 83 System.out.println(123); // prints 123
為什麼第一行印 83 而不是 123?關鍵在於前導零。
八進位解釋
整數文字中的前導零表示數字以八進位(以 8 為基數)表示。若要將八進制數轉換為十進制數,請將每個數字從右到左乘以適當的 8 次方,然後對結果求和。
對於 0123,我們有:
(1 * 8 * 8) + (2 * 8) + (3) = 83
因此,0123 被解釋為十進位值 83。
為什麼沒有八進位浮點數?
奇怪的是,Java 不允許八進位浮點文字,因此此行為僅適用於整數。
最佳實踐
為了避免混淆,通常建議避免在整數文字中使用前導零,除非您特別希望將數字解釋為八進制。
以上是為什麼 Java 中'0123'印出'83'?的詳細內容。更多資訊請關注PHP中文網其他相關文章!