Calculs de module en Java : gestion des nombres négatifs
En Java, effectuer des opérations de module sur des nombres négatifs donne souvent des résultats inattendus. Lorsqu'on applique l'opérateur de module (%) sur un nombre négatif, on peut s'attendre à obtenir une valeur positive, mais dans certains cas, il renvoie un résultat négatif. Pour comprendre ce comportement, il est essentiel de se plonger dans le fonctionnement interne des calculs de module.
L'opérateur de module calcule le reste lors de la division d'un nombre par un autre. Pour les nombres positifs, le reste est systématiquement positif. Cependant, lorsqu'il s'agit de nombres négatifs, il existe deux définitions possibles du module :
Java utilise la définition du module de troncature. Par conséquent, lorsqu’on divise un nombre négatif par un nombre positif, le reste est toujours négatif. Par exemple, -13 % 64 est évalué à -13 en Java car -13 est divisé par 64 sans aucune composante fractionnaire.
Si l'on souhaite un reste positif pour les entrées négatives, l'extrait de code suivant peut être utilisé :
<code class="java">int r = x % n; if (r > 0 && x < 0) { r -= n; }</code>
À l'inverse, si l'on préfère un reste négatif pour les entrées négatives, l'extrait de code suivant peut être utilisé :
<code class="java">int r = x % n; if (r < 0) { r += n; }</code>
Comprendre les différentes définitions du module est crucial lorsque l'on travaille avec des nombres négatifs dans différents langages de programmation. En comprenant les distinctions entre module plancher et module tronqué, les développeurs peuvent s'assurer que leur code se comporte comme prévu, en particulier lorsqu'il s'agit d'entrées négatives.
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!