Rumah  >  Artikel  >  Java  >  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
Susan Sarandonasal
2024-10-30 04:04:28985semak imbas

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>
  • 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>

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