(PHP 4 >= 4.0.4, PHP 5, PHP 7)
gmp_setbit — Установка бита
Устанавливает в 1 бит с индексом index
в числе a
.
a
Изменяемое значение.
Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.
index
Индекс устанавливаемого бита. Индекс 0 указывает на младший бит.
bit_on
True для установки бита (установки в 1/включен); false для его очистки (установки в 0/выключен).
Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.
Пример #1 Пример использования gmp_setbit() - 0 индекс
<?php
$a = gmp_init("2"); //
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0); // 0b10 now becomes 0b11
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>
Результат выполнения данного примера:
2 -> 0b10 3 -> 0b11
Пример #2 Пример использования gmp_setbit() - 1 индекс
<?php
$a = gmp_init("0xfd");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 1); // index starts at 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); // clear bit at index 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>
Результат выполнения данного примера:
255 -> 0b11111111 254 -> 0b11111110
Замечание:
В отличие от большинства GMP функций, gmp_setbit() должна вызываться для уже существующего GMP ресурса (например, созданного функцией gmp_init()). Число не будет создаваться автоматически.