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
Ricordate l'aritmetica di base dalla scuola? Questi operatori funzionano esattamente nello stesso modo.
Esempio | Nome | Risultato |
---|---|---|
+$a | Identità | Conversione di $a in int o float in modo appropriato. |
-$a | Negazione | Opposto di $a. |
$a + $b | Addizione | La somma di $a e $b. |
$a - $b | Sottrazione | La differenza di $a e $b. |
$a * $b | Moltiplicazione | il prodotto di $a e $b. |
$a / $b | Divisione | Quoziente di $a e $b. |
$a % $b | Modulo | Il resto di $a diviso da $b. |
$a ** $b | Elevamento a potenza | Risultato di elevazione $a alla $besima potenza. |
L'operatore di divisione ("/") restituisce un valore float a meno che i due operandi siano interi (oppure stringhe che vengono convertite in interi) e i numeri siano divisibili, nel qual caso viene restituito un valore intero. Per le divisioni di interi, vedere intdiv().
Gli operandi del modulo sono convertiti in int prima dell'operazione. Per il modulo di numeri a virgola mobile, vedere fmod().
Il risultato dell'operatore modulo %
ha lo stesso segno
del dividendo - ovvero, il risultato di $a % $b
avrà lo stesso segno di $a. Per esempio:
<?php
echo (5 % 3)."\n"; // prints 2
echo (5 % -3)."\n"; // prints 2
echo (-5 % 3)."\n"; // prints -2
echo (-5 % -3)."\n"; // prints -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