Maison > Java > javaDidacticiel > ## Pourquoi l'opérateur de module Java (%) renvoie-t-il des résultats négatifs pour les nombres négatifs ?

## Pourquoi l'opérateur de module Java (%) renvoie-t-il des résultats négatifs pour les nombres négatifs ?

Susan Sarandon
Libérer: 2024-10-29 12:39:30
original
304 Les gens l'ont consulté

## Why Does Java's Modulus Operator (%) Return Negative Results for Negative Numbers?

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 :

  1. Module au sol : Cette définition arrondit le reste à l'entier le plus proche vers l'infini négatif.
  2. Module de troncature : Cette définition arrondit le reste à zéro (c'est-à-dire qu'elle élimine toute partie fractionnaire).

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>
Copier après la connexion

À 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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal