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!