首頁 > Java > java教程 > 為什麼 Java 整數文字中的前導零會改變它們的值?

為什麼 Java 整數文字中的前導零會改變它們的值?

Barbara Streisand
發布: 2024-12-29 21:29:14
原創
900 人瀏覽過

Why Do Leading Zeros in Java Integer Literals Change Their Value?

帶前導零的整數文字的解釋

帶前導零的整數文字在Java 中可能會出現意外的行為,表現出與對應的數值不同的數值沒有前導零。此行為源自於將前導零解釋為基本前綴。

當數字文字以零為前綴時,它被解釋為八進位(以 8 為基數)數字。這是因為在八進位表示法中,數字的範圍可以是 0 到 7。因此,「0123」代表八進制數 123。

要將這個八進制數轉換為其等值的十進制數,需要將每個數字乘以對應的冪8 並對結果進行求和。對於“0123”,此計算為:

(1 * 8 * 8) + (2 * 8) + (3) = 83
登入後複製

因此,程式碼“System.out.println(0123)”列印 83。

相反,沒有前導的「123」零被解釋為十進制數。十進制數 123 只是其數字和 (1 2 3),即 123。因此,「System.out.println(123)」印出 123。

避免誤解

為了避免整數文字中前導零的意外行為,建議始終以十進制數字開頭非零數字。如果文字打算以 10 為基數表示,則它不應有前導零。

替代基本表示法

雖然八進位不再常用, Java 確實提供了一種使用「0x」前綴指定十六進位(以16 為基數)數字的方法。例如「0x123」代表十六進位數123,相當於十進制數291。

以上是為什麼 Java 整數文字中的前導零會改變它們的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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