Rumah > Java > javaTutorial > Mengapa Java Mentafsir Huruf Integer dengan Sifar Utama sebagai Oktal?

Mengapa Java Mentafsir Huruf Integer dengan Sifar Utama sebagai Oktal?

Barbara Streisand
Lepaskan: 2024-12-21 11:18:12
asal
899 orang telah melayarinya

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

Mentafsir Huruf Integer dengan Sifar Utama

Di Java, literal integer dengan sifar pendahuluan ditafsirkan sebagai nombor perlapanan (asas-8). Tingkah laku ini boleh membingungkan, terutamanya jika dibandingkan dengan literal perpuluhan (asas-10).

Pertimbangkan kod berikut:

System.out.println(0123); // Prints 83
System.out.println(123); // Prints 123
Salin selepas log masuk

Penjelasan:

  • 0123 bermula dengan sifar pendahuluan, menunjukkan literal perlapanan. Untuk menukar daripada perlapanan kepada perpuluhan, darab setiap digit dengan kuasa sepadan 8 dan jumlahkan hasilnya:
(1 * 8 * 8) + (2 * 8) + (3) = 83
Salin selepas log masuk

Oleh itu, 0123 ditafsirkan sebagai 83 dalam perpuluhan.

  • 123 tidak mempunyai sifar pendahuluan, jadi ia ditafsirkan sebagai literal perpuluhan, menghasilkan nilai yang dijangkakan 123.

Mengelakkan Tafsiran Oktal:

Untuk mengelakkan tafsiran oktal yang tidak dijangka, cuma tinggalkan sifar pendahuluan daripada literal integer yang tidak bertujuan untuk mewakili nombor perlapanan.

Heksadesimal Literal:

Java juga menyokong literal heksadesimal (asas-16), yang diawali dengan 0x. Contohnya:

System.out.println(0x123); // Prints 291
Salin selepas log masuk

Dalam kes ini, 0x123 mewakili nilai perenambelasan 123, yang bersamaan dengan 291 dalam perpuluhan.

Atas ialah kandungan terperinci Mengapa Java Mentafsir Huruf Integer dengan Sifar Utama sebagai Oktal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan