gmp_testbit 对我的(超过 64 位)位掩码检查非常有用。
同时,我认为这些是最好的替代方案。
大部分已满
<?php
(gmp_scan1($a, $index) == $index)
?>
大部分为空
<?php
(gmp_scan0($a, $index) != $index)
?>
尽管如此,最坏情况下的时间复杂度仍然是 O(N)。
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
gmp_testbit — 测试位是否已设置
num
一个 GMP 对象,一个 int,或者一个 string,可以解释为数字,遵循与在 gmp_init() 中使用字符串时相同的逻辑,并自动检测基数(即当 base
等于 0 时)。
index
要测试的位
示例 #1 gmp_testbit() 示例
<?php
$n = gmp_init("1000000");
var_dump(gmp_testbit($n, 1));
gmp_setbit($n, 1);
var_dump(gmp_testbit($n, 1));
?>
以上示例将输出
bool(false) bool(true)
gmp_testbit 对我的(超过 64 位)位掩码检查非常有用。
同时,我认为这些是最好的替代方案。
大部分已满
<?php
(gmp_scan1($a, $index) == $index)
?>
大部分为空
<?php
(gmp_scan0($a, $index) != $index)
?>
尽管如此,最坏情况下的时间复杂度仍然是 O(N)。