English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод реализации метода有余数的除法 для больших чисел (двоичных чисел) в PHP

В этой статье описывается метод реализации функции модуля для больших чисел (двоичных чисел) в PHP. Поделюсь с вами, вот как это можно сделать:

Обычно при выполнении операции модуля мы primero думаем о использование процента %, но когда делитель является очень большим значением, превышающим диапазон int, такая операция модуля не точна.

php функция модуля для больших чисел (двоичных чисел):

/**
 * php большая числовая функция модуля
 *
 * @param int or float $bn делитель
 * @param int $sn Делимое
 * @return int Оставшаяся часть
 */
//Метод получения остатка от большого числа (двоичной дроби)
function Kmod($bn, $sn) {
  return intval(fmod(floatval($bn), $sn));
}

Тестовый код:

//Метод получения остатка от большого числа (двоичной дроби)
function Kmod($bn, $sn) {
  return intval(fmod(floatval($bn), $sn));
}
//Метод получения остатка от целого числа
function mod($bn, $sn) {
  return $bn%$sn;
}
//Самое большое целое число
$bn = PHP_INT_MAX;
$sn = 11;
var_dump($bn);
var_dump(Kmod($bn, $sn));
var_dump(mod($bn, $sn));
//Добавление 1 к самому большому целому числу
$bn = PHP_INT_MAX + 1;
var_dump($bn);
var_dump(Kmod($bn, $sn));
var_dump(mod($bn, $sn));

Результат выполнения:

int 2147483647
int 1
int 1
float 2147483648
int 2
int -2

Для тех, кто интересуется дополнительной информацией о PHP, можно посмотреть专题 статьи на сайте: "Суммирование математических операций PHP", "Суммирование операторов и использования операторов PHP", "Суммирование использования строк (string) в PHP", "Полное руководство по операциям массива (Array) в PHP", "Суммирование алгоритмов и методов遍ения PHP", "Урок по структурам данных и алгоритмам PHP", "Суммирование алгоритмов программирования PHP", "Суммирование использования регулярных выражений в PHP" и "Суммирование общих операций с базами данных в PHP".

Надеюсь, что информация, изложенная в этой статье, поможет вам в разработке PHP-программ.

Заявление: содержимое статьи взято из Интернета, авторские права принадлежат авторам, контент предоставлен пользователями Интернета, сайт не обладает правами собственности, не был отредактирован вручную, и не несет ответственности за соответствующие юридические вопросы. Если вы обнаружите спорное содержание, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма замените # на @) для жалоб и предоставьте соответствующие доказательства. При подтверждении факта, сайт немедленно удалит спорное содержимое.

Тебе может понравиться