Maison > développement back-end > C++ > Comment l'opérateur Modulo gère-t-il les nombres négatifs ?

Comment l'opérateur Modulo gère-t-il les nombres négatifs ?

Linda Hamilton
Libérer: 2024-12-23 03:10:13
original
610 Les gens l'ont consulté

How Does the Modulo Operator Handle Negative Numbers?

Comprendre le comportement de l'opérateur modulo avec des valeurs négatives

L'opérateur modulo est connu pour donner des résultats différents lorsqu'il est utilisé avec des opérandes négatifs. Pour approfondir cela, considérons les opérations suivantes :

std::cout << (-7 % 3) << std::endl; // Output: -1
std::cout << (7 % -3) << std::endl; // Output: 1
Copier après la connexion

Justification selon la norme ISO

Selon ISO14882:2011(e) 5.6-4, l'opérateur modulo (%) donne le reste de la division de la première expression par la seconde. Cependant, pour les opérandes intégraux comme dans notre cas, l'opérateur de division (/) effectue une division entière, en ignorant toute partie fractionnaire.

Décomposition mathématique

Décomposons les calculs pour plus de clarté :

  • (-7/3) donne -2, et (-2* 3) vaut -6. Par conséquent, -7 % 3 donne -1, puisque (-6 - (-7)) = -1.
  • (7 / -3) donne -2, et (-2 * -3) est 6. Ainsi, 7 % -3 donne 1, car (6 - 7) = 1.

Défini par la mise en œuvre Comportement

Il est important de noter que lorsque les deux opérandes sont négatifs, le signe du reste est défini par l'implémentation. Cependant, depuis ISO14882:2011(e), le comportement n'est plus explicitement indiqué comme dans son prédécesseur, ISO14882:2003(e).

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