"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > ## 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 ?

Publié le 2024-11-08
Parcourir:847

## 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 d'approfondir 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é :

int r = x % n;
if (r > 0 && x 

À 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é :

int r = x % n;
if (r 

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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3