Rumah  >  Artikel  >  Java  >  Mengapa menambahkan "L" pada satu operan dalam pendaraban Java mengubah hasilnya?

Mengapa menambahkan "L" pada satu operan dalam pendaraban Java mengubah hasilnya?

Linda Hamilton
Linda Hamiltonasal
2024-11-07 12:29:02745semak imbas

Why does adding

Mengapa Hasil Pendaraban Berbeza dengan dan tanpa "L"?

Di Java, operasi pendaraban menghasilkan hasil yang berbeza apabila menggunakan "L" akhiran untuk salah satu operan.

Menambah "L" untuk Nilai Panjang yang Betul

Menambah "L" memastikan bahawa hasilnya adalah nilai yang panjang. Apabila mendarab integer, hasilnya juga adalah integer. Jika keputusan melebihi julat integer (2147483647 hingga -2147483648), ia melimpah dan menjadi negatif.

Dengan menambahkan "L" kepada 365 dalam ungkapan, anda dengan jelas menyatakan bahawa nilai itu panjang. Ini memastikan bahawa hasil pendarabannya dengan integer lain adalah nilai yang panjang dan tidak dipotong kepada julat integer.

Tanpa "L": Keputusan Integer Salah

Apabila mendarab integer tanpa "L", hasilnya ialah integer. Jika keputusan melebihi julat integer, ia "bergulung" dan menjadi nilai yang berbeza.

Contohnya, pendaraban 1000606024365 tanpa menambah " L" memberikan hasil yang salah 1471228928. Ini kerana hasil 31536000000 melimpahi julat integer dan menjadi -1702967296 (wakil pelengkap 2 bagi 31536000000).

  • Perwakilan binari kedua-dua keputusan menunjukkan perbezaan:
  • 1000606024365L: 011101010111101100010010> 60
  • 60
24

365: 0111111111111111111111111111111111

Apabila anda tidak menambah "L", empat bit 110 yang paling ketara mewakili 1010 yang paling ketara 010010110000000000, yang mana sepadan dengan hasil yang salah.

    Pertimbangan Lain
  • Jika pendaraban menghasilkan nilai dalam julat integer, penambahan "L" tidak akan menjadikan perbezaan.
  • Limpahan boleh berlaku semasa pengiraan pertengahan. Walaupun hasil akhir sesuai dalam julat integer, adalah penting untuk mempertimbangkan limpahan apabila melakukan operasi aritmetik dengan nilai yang besar.Menggerakkan "L" ke permulaan ungkapan, seperti 365L1000
  • 60
6024*30, memastikan ketepatan untuk pendaraban yang mungkin melimpahi julat integer.

Atas ialah kandungan terperinci Mengapa menambahkan "L" pada satu operan dalam pendaraban Java mengubah hasilnya?. 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