Regarding the operation of division with remainder (%) - it differs from the one accepted in mathematics, since it is looking for "refusal" and not "remainder" - a feature of the idiv implementation in 8086
Vous rappelez-vous des opérations élémentaires apprises à l'école ? Les opérateurs arithmétiques fonctionnent comme elles.
Exemple | Nom | Résultat |
---|---|---|
+$a | Identité | Conversion de $a vers int ou float, selon le plus approprié. |
-$a | Négation | Opposé de $a. |
$a + $b | Addition | Somme de $a et $b. |
$a - $b | Soustraction | Différence de $a et $b. |
$a * $b | Multiplication | Produit de $a et $b. |
$a / $b | Division | Quotient de $a et $b. |
$a % $b | Modulus | Reste de $a divisé par $b. |
$a ** $b | Exponentiation | Résultat de l'élévation de $a à la puissance $b. |
L'opérateur de division ("/") retourne une valeur à virgule flottante sauf si les 2 opérandes sont des entiers (ou une chaîne de caractères qui a été convertie en entiers) et que leur division est exacte (c.-à-d. a pour reste 0), auquel cas une valeur entière sera retournée. Pour la division entière, voir intdiv().
Les opérandes du modulo sont converties en int avant exécution. Pour le modulo sur des nombres décimaux, voir fmod().
Le résultat de l'opération modulo %
a le même signe que
le premier opérande, ansi le résultat de $a % $b
aura le signe de
$a. Par exemple:
<?php
echo (5 % 3)."\n"; // affiche 2
echo (5 % -3)."\n"; // affiche 2
echo (-5 % 3)."\n"; // affiche -2
echo (-5 % -3)."\n"; // affiche -2
?>
Regarding the operation of division with remainder (%) - it differs from the one accepted in mathematics, since it is looking for "refusal" and not "remainder" - a feature of the idiv implementation in 8086