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;
Nilai Panjang Tanpa Akhiran "L"
long oneYearWithoutL = 1000*60*60*24*365;
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!