gmp_setbit()
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
Set bit
说明
gmp_setbit(GMP$a,int $index[,bool $bit_on= TRUE
]): void
Sets bit$indexin$a.
参数
- $a
The value to modify.
可以是一个 GMP数据resouce,或一个可以转换为数值的字符串。
- $index
The index of the bit to set. Index 0 represents the least significant bit.
- $bit_on
True to set the bit(set it to 1/on); false to clear the bit(set it to 0/off).
返回值
GMP 数值资源.
范例
gmp_setbit() example - 0 index
<?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
gmp_setbit() example - 1 index
<?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
gmp_setbit() example - clearing a bit
<?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
注释
Note:Unlike most of the other GMP functions,gmp_setbit() must be called with a GMP resource that already exists(using gmp_init() for example). One will not be automatically created.
参见
gmp_clrbit()
Clear bitgmp_testbit()
Tests if a bit is set
The third parameter is somewhat confusingly named; it would probably be better described as "$set_state". If true, it sets the bit to 1. If false, it sets the bit to 0. Default is true. <?php $num = gmp_init(1); gmp_setbit($num, 1); echo 'gmp_setbit(1, 1): '.gmp_strval($num, 2)."\n"; // 11 $num = gmp_init(1); gmp_setbit($num, 1, true); echo 'gmp_setbit(1, 1, true): '.gmp_strval($num, 2)."\n"; // 11 $num = gmp_init(1); gmp_setbit($num, 0, false); echo 'gmp_setbit(1, 0, false): '.gmp_strval($num, 2)."\n"; // 0 ?>