Home > Java > javaTutorial > body text

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

Susan Sarandon
Release: 2024-10-30 04:04:28
Original
1003 people have browsed it

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

Modulo Operations in Java: Why Positive and Negative Numbers Matter

When performing modulo operations in Java, understanding the subtle difference between the modulus and the remainder is crucial. Unlike Python, Java's modulo operator (%) computes the remainder, not the modulus.

Consider the example provided in the question: -1 % 2 in Java returns -1, while in Python, it returns 1. This is because Python calculates the modulus, which always yields a non-negative value, while Java calculates the remainder, which preserves the sign of the first operand (-1 in this case).

To obtain the same behavior as Python, you can employ the following techniques:

  • Addition and modulo: Add 2 to the negative result and then apply the modulo again. This operation ensures that the result is always positive:
<code class="java">int i = (((-1 % 2) + 2) % 2)</code>
Copy after login
  • Conditional increment: Initialize the result to the original remainder, and if it's negative, add 2:
<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>
Copy after login

Remember, these techniques apply whenever you need to compute the modulus of negative numbers in Java. While the operators in Python and Java may have the same symbol (%), they behave differently, leading to potential confusion if you're transitioning between languages.

The above is the detailed content of Why Does -1 % 2 Return -1 in Java, but 1 in Python?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!