首頁 > Java > java教程 > 為什麼 Java 將帶前導零的整數文字解釋為八進位?

為什麼 Java 將帶前導零的整數文字解釋為八進位?

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

Why Does Java Interpret Integer Literals with Leading Zeroes as Octal?

解釋帶前導零的整數文字

在Java 中,帶前導零的整數文字被解釋為八進位(以8 為基數)數字。這種行為可能會令人費解,尤其是與十進制(以 10 為基數)文字相比。

考慮以下程式碼:

System.out.println(0123); // Prints 83
System.out.println(123); // Prints 123
登入後複製

解釋:

  • 0123 以前導零開頭,表示八進位文字。要將八進制轉換為十進制,請將每個數字乘以相應的 8 次方,然後將結果相加:
(1 * 8 * 8) + (2 * 8) + (3) = 83
登入後複製

因此,0123 被解釋為十進制的 83。

  • 123沒有前導零,因此它被解釋為十進製文字,從而得到預期值123.

避免八進制解釋:

為了避免意外的八進制解釋,只需省略不打算表示八進制數字的整數文字中的前導零。

十六進位文字:

Java 也支援十六進位(以 16 為基數)文字,其前綴為 0x。例如:

System.out.println(0x123); // Prints 291
登入後複製

在這種情況下,0x123 代表十六進位值 123,相當於十進位的 291。

以上是為什麼 Java 將帶前導零的整數文字解釋為八進位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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