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 ] )

设置位indexa

参数

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资源调用。一个不会自动创建。