Maison  >  Article  >  Java  >  Voici quelques options de titre, jouant avec le format des questions : * **Pourquoi -13 % 64 et non 51 en Java ?** (Simple et direct) * **Opérateur de module Java et nombres négatifs : comment obtenir le résultat attendu

Voici quelques options de titre, jouant avec le format des questions : * **Pourquoi -13 % 64 et non 51 en Java ?** (Simple et direct) * **Opérateur de module Java et nombres négatifs : comment obtenir le résultat attendu

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 12:17:30207parcourir

Here are a few title options, playing with the question format:

* **Why is -13 % 64 not 51 in Java?**  (Simple and direct)
* **Java Modulus Operator and Negative Numbers: How to Get the Expected Result?** (More descriptive, highlights the challenge)
* **

Calcul du module avec des nombres négatifs en Java

En Java, l'opérateur de module (%) renvoie le reste après avoir divisé deux nombres. Cependant, lorsqu'il s'agit de nombres négatifs, le résultat peut ne pas être celui attendu.

Problème :

Un développeur rencontre un résultat inattendu lors de l'exécution de calculs de module avec des nombres négatifs, spécifiquement -13 % 64. Au lieu du résultat souhaité de 51, le résultat est -13.

Explication :

La définition du module pour les nombres négatifs varie selon la programmation langues. En Java, le reste renvoyé par l'opérateur module a le même signe que le dividende (numérateur). Ainsi, -13 % 64 s'évalue à -13.

Solution :

Pour obtenir le résultat souhaité de 51, la correction suivante peut être appliquée :

<code class="java">int r = x % n;
if (r > 0 && x < 0) {
    r -= n;
}</code>

Ce code garantit que le reste est positif lorsque le dividende est négatif.

Alternativement, si le langage renvoie un reste négatif pour les entrées négatives et que le développeur préfère un résultat positif, l'ajustement suivant peut être made :

<code class="java">int r = x % n;
if (r < 0) {
    r += n;
}</code>

Ce code convertit le reste négatif en une valeur positive.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn