Rumah > Java > javaTutorial > Mengapa Menambah Akhiran 'L' pada Operasi Darab Penting untuk Nilai Panjang?

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

Susan Sarandon
Lepaskan: 2024-11-07 07:21:02
asal
786 orang telah melayarinya

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;
Salin selepas log masuk
  • 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;
Salin selepas log masuk
  • 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
Salin selepas log masuk

"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!

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