Rumah  >  Artikel  >  Java  >  Mengapa Menambah Akhiran "L" pada Operasi Darab Penting untuk Nilai Panjang?

Mengapa Menambah Akhiran "L" pada Operasi Darab Penting untuk Nilai Panjang?

Susan Sarandon
Susan Sarandonasal
2024-11-07 07:21:02710semak imbas

Why Does Adding an

Mengapa Keputusan Berbeza daripada Operasi Darab dengan dan Tanpa Akhiran "L"?

Apabila mendarab nombor yang melibatkan nilai panjang, menambah "L" " akhiran kepada literal angka adalah penting untuk mendapatkan hasil yang tepat. Ini kerana jenis data lalai untuk literal angka ialah int, yang mempunyai julat yang lebih kecil daripada panjang dan boleh mengakibatkan limpahan integer.

Nilai Panjang dengan Akhiran "L"

long oneYearWithL = 1000*60*60*24*365L;
  • Tersurat 1000*60*60*24*365L secara eksplisit dibuang ke panjang menggunakan akhiran "L", memastikan hasil disimpan sebagai nilai panjang 64-bit. Nilai ini dengan tepat mewakili bilangan saat dalam setahun.

Nilai Panjang Tanpa Akhiran "L"

long oneYearWithoutL = 1000*60*60*24*365;
  • Numeric literal 1000 *60*60*24*365 secara tersirat dihantar ke int kerana tiada akhiran "L" hadir. Hasilnya ialah integer 32-bit, yang melimpah kerana nilainya berada di luar julat int. Limpahan ini membawa kepada pengiraan yang salah.

Perwakilan Perduaan

Perbezaan antara kedua-dua nilai boleh dilihat dalam perwakilan binarinya:

oneYearWithL  : 011101010111101100010010110000000000
oneYearWithoutL: 01111111111111111111111111111111

"1" dalam bit paling ketara oneYearWithL menunjukkan nilai positif, manakala "0" dalam bit paling ketara satuTahunTanpaL menunjukkan limpahan yang mengakibatkan nilai negatif.

Kesimpulan

Apabila mendarab nombor yang melibatkan nilai panjang, secara eksplisit menggunakan akhiran "L" memastikan bahawa hasilnya disimpan dengan tepat sebagai nilai panjang 64-bit. Mengabaikan menambah akhiran "L" boleh menyebabkan pengiraan yang salah disebabkan limpahan integer.

Atas ialah kandungan terperinci Mengapa Menambah Akhiran "L" pada Operasi Darab Penting untuk Nilai Panjang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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