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
Lembra-se da aritmética básica da escola? Estes operadores funcionam exatamente como aqueles.
Exemplo | Nome | Resultado |
---|---|---|
+$a | Identidade | Conversão de $a para int ou float conforme apropriado. |
-$a | Negação | Oposto de $a. |
$a + $b | Adição | Soma de $a e $b. |
$a - $b | Subtração | Diferença entre $a e $b. |
$a * $b | Multiplicação | Produto de $a e $b. |
$a / $b | Divisão | Quociente de $a e $b. |
$a % $b | Módulo | Resto de $a dividido por $b. |
$a ** $b | Exponencial | Resultado de $a elevado a $b. |
O operador de divisão ("/") sempre retorna um valor com ponto flutuante, a não ser que os dois operandos sejam inteiros (ou strings que são convertidas para inteiros) e números inteiramente divisíveis, nesse caso um inteiro é retornado. Para divisão de inteiros, veja intdiv().
Operandos de módulo são convertidos para int antes do processamento. Para módulos de ponto flutuante, veja fmod().
O resultado do operador de módulo %
tem o mesmo sinal
do dividendo — ou seja, o resultado de $a % $b
terá o mesmo sinal de $a. Exemplos:
<?php
echo (5 % 3)."\n"; // imprime 2
echo (5 % -3)."\n"; // imprime 2
echo (-5 % 3)."\n"; // imprime -2
echo (-5 % -3)."\n"; // imprime -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