首頁 > Java > java教程 > 為什麼 Java 中'0123'印出'83'?

為什麼 Java 中'0123'印出'83'?

Patricia Arquette
發布: 2024-12-27 13:14:10
原創
825 人瀏覽過

Why Does `0123` Print `83` in Java?

前導零會混淆整數解釋

處理整數文字時,前導零的存在可能會產生意想不到的後果。考慮以下程式碼:

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

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