Rumah > Java > javaTutorial > Mengapa Adakah -1 % 2 Mengembalikan -1 dalam Java, tetapi 1 dalam Python?

Mengapa Adakah -1 % 2 Mengembalikan -1 dalam Java, tetapi 1 dalam Python?

Susan Sarandon
Lepaskan: 2024-10-30 04:04:28
asal
1201 orang telah melayarinya

Why Does -1 % 2 Return -1 in Java, but 1 in Python?

Operasi Modulo dalam Java: Mengapa Nombor Positif dan Negatif Penting

Apabila melakukan operasi modulo di Java, fahami perbezaan halus antara modulus dan selebihnya adalah penting. Tidak seperti Python, pengendali modulo Java (%) mengira bakinya, bukan modulus.

Pertimbangkan contoh yang diberikan dalam soalan: -1 % 2 dalam Java mengembalikan -1, manakala dalam Python, ia mengembalikan 1. Ini adalah kerana Python mengira modulus, yang sentiasa menghasilkan nilai bukan negatif, manakala Java mengira baki, yang mengekalkan tanda operan pertama (-1 dalam kes ini).

Untuk mendapatkan kelakuan yang sama seperti Python, anda boleh menggunakan teknik berikut:

  • Tambahan dan modulo: Tambahkan 2 pada hasil negatif dan kemudian gunakan modulo semula. Operasi ini memastikan bahawa hasilnya sentiasa positif:
<code class="java">int i = (((-1 % 2) + 2) % 2)</code>
Salin selepas log masuk
  • Kenaikan bersyarat: Mulakan hasil kepada baki asal, dan jika negatif, tambah 2:
<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>
Salin selepas log masuk

Ingat, teknik ini digunakan apabila anda perlu mengira modulus nombor negatif dalam Java. Walaupun pengendali dalam Python dan Java mungkin mempunyai simbol (%) yang sama, mereka berkelakuan berbeza, yang membawa kepada kemungkinan kekeliruan jika anda beralih antara bahasa.

Atas ialah kandungan terperinci Mengapa Adakah -1 % 2 Mengembalikan -1 dalam Java, tetapi 1 dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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