gmp_setbit
gmp_setbit
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
gmp_setbit - 设置位
描述
void gmp_setbit ( GMP &$a , int $index [, bool $bit_on = true ] )
设置位index
在a
。
参数
a
要修改的值。
可以是PHP 5.5及更早版本中的GMP编号资源,PHP 5.6及更高版本中的GMP对象,也可以是数字字符串,前提是可以将后者转换为数字。
index
要设置的位的索引。索引0表示最低有效位。
bit_on
设置该位为真(将其设置为1 / on); 假清除该位(将其设置为0 /关闭)。
返回值
PHP 5.5及更早版本中的GMP编号资源,或PHP 5.6及更高版本中的GMP对象。
例子
示例#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_init())一个GMP资源调用。一个不会自动创建。