LonghornPHP 2026

bcpowmod

(PHP 5, PHP 7, PHP 8)

bcpowmodВозводит число произвольной точности в степень и делит результат возведения в степень на модуль числа

Описание

function bcpowmod(
string $num,
string $exponent,
string $modulus,
? int $scale = null
): string

Функция возводит число num в степень exponent методом быстрого возведения в степень и возвращает остаток от деления степени числа на модуль числа в аргументе modulus.

Список параметров

num

Основание степени в виде строки с целым числом, без дробной части.

exponent

Показатель степени в виде строки с неотрицательным целым числом, без дробной части.

modulus

Неполное кратное в виде строки с целым числом, без дробной части.

scale

Параметр используется для установки количества цифр после десятичного знака в результате. Если установлено значение null , то по умолчанию будет установлен масштаб по умолчанию, заданный с помощью функции bcscale() или значение INI-директивы bcmath.scale.

Возвращаемые значения

Функция возвращает результат в виде строки.

Ошибки

Функция выбрасывает ошибку ValueError в следующих случаях:

  • Значение аргумента num, exponent или modulus оказалось строкой, которую сформировали неправильно с точки зрения допустимого формата числовых строк в модуле BCMath.
  • Значение аргумента num, exponent или modulus содержит дробную часть.
  • В аргументе exponent передали отрицательное значение.
  • Значение аргумента scale выходит за пределы допустимого диапазона.

Функция выбрасывает ошибку DivisionByZeroError , если значение аргумента modulus равняется 0.

Список изменений

Версия Описание
8.0.0 Параметр scale теперь принимает значение null .
8.0.0 Функция теперь выбрасывает ошибку ValueError вместо возврата значения false , если показатель степени exponent оказался отрицательным значением.
8.0.0 Деление на 0 теперь выбрасывает ошибку DivisionByZeroError вместо возврата значения false .

Примеры

Следующие выражения дают одинаковый результат. Однако функция bcpowmod() работает быстрее и принимает бо́льшие значения аргументов.

<?php
$a = bcpowmod($x, $y, $mod);
$b = bcmod(bcpow($x, $y), $mod);
// $a == $b
?>

Примечания

Замечание:

Поскольку функция выполняет операцию взятия остатка, отрицательные числа иногда дают неожиданные результаты.

Смотрите также

  • bcpow() - Возводит в степень число произвольной точности
  • bcmod() - Получает остаток от деления чисел произвольной точности
  • BcMath\Number::powmod() - Возводит число произвольной точности в степень и делит результат возведения в степень на модуль числа

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /