Valeurs restantes négatives dans l'opération modulo
Lors de l'exécution d'opérations modulo, où un opérande est négatif, des résultats inattendus peuvent survenir. Cet article explore pourquoi des opérations telles que (-7 % 3) et (7 % -3) produisent des résultats apparemment incohérents de -1 et 1, respectivement.
Selon la norme ISO14882 :2011, l'opérateur modulo (% ) fournit le reste après avoir divisé le premier opérande par le second. Alors que diviser des entiers implique généralement de supprimer la partie fractionnaire, l'opérateur modulo considère également les signes des opérandes.
Dans le cas de (-7 % 3), le résultat de -7 / 3 est -2. En multipliant -2 par 3, on obtient -6, ce qui indique que le reste est -1. Par conséquent, (-7 % -3) = -1.
De même, pour (7 % -3), 7/-3 donne -2. En multipliant -2 par -3, on obtient 6, ce qui donne le reste 1. Ainsi, (7 % -3) = 1.
Il est important de noter que l'opération modulo présente un comportement défini par l'implémentation lorsque le résultat est négatif. . Bien que certaines implémentations puissent conserver le signe négatif, la norme ISO14882:2011 ne l'applique plus. Par conséquent, le signe négatif (-7 % 3) dépend du système.
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!