(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
gmp_setbit — Устанавливает бит
Функция устанавливает в числе num
бит,
позицию которого указали в аргументе index
.
Функция не возвращает значения после выполнения.
Пример #1 Пример установки бита с индексом 0 функцией gmp_setbit()
<?php
$a = gmp_init("2");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0); // Число 0b10 становится 0b11
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>
Результат выполнения приведённого примера:
2 -> 0b10 3 -> 0b11
Пример #2 Пример установки бита с индексом 1 функцией gmp_setbit()
<?php
$a = gmp_init("0xfd");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 1); // Индексация начинается с 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>
Результат выполнения приведённого примера:
253 -> 0b11111101 255 -> 0b11111111
Пример #3 Пример сброса бита функцией gmp_setbit()
<?php
$a = gmp_init("0xff");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0, false); // Сбрасывает бит с индексом 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>
Результат выполнения приведённого примера:
255 -> 0b11111111 254 -> 0b11111110
Замечание:
В отличие от большей части других функций модуля GMP, функция gmp_setbit() работает только с объектом GMP-числа, который создали прежде, например функцией gmp_init(). Функция не создаёт объект числа автоматически.