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
Помните школьные основы арифметики? Описанные ниже операторы работают так же.
Пример | Название | Результат |
---|---|---|
+$a | Идентичность | Конвертация значения переменной $a в целое число (int) или число с плавающей точкой (float), если нужно. |
-$a | Отрицание | Смена знака $a. |
$a + $b | Сложение | Сумма $a и $b. |
$a - $b | Вычитание | Разность $a и $b. |
$a * $b | Умножение | Произведение $a и $b. |
$a / $b | Деление | Частное от деления $a на $b. |
$a % $b | Деление по модулю | Целочисленный остаток от деления $a на $b. |
$a ** $b | Возведение в степень | Возведение значения переменной $a в степень, указанную в переменной $b. |
Операция деления («/») возвращает число с плавающей точкой, кроме случая, когда оба значения — целые числа (или строки, которые преобразуются в целые числа), которые делятся нацело, тогда возвращается целое значение. Для целочисленного деления вызывают функцию intdiv().
При делении по модулю операнды преобразовываются в целые числа (int) (путём удаления дробной части) до начала операции. Для деления по модулю чисел с плавающей точкой вызывают функцию fmod().
Результат операции остатка от деления %
получит тот же знак,
что и делимое — то есть, результат выражения $a % $b
получит тот же знак, что и значение переменной $a. Например:
<?php
echo (5 % 3)."\n"; // печатает 2
echo (5 % -3)."\n"; // печатает 2
echo (-5 % 3)."\n"; // печатает -2
echo (-5 % -3)."\n"; // печатает -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