gmp_testbit will be very useful for my (over 64-bit) bitmask checking.
In the meantime, I think these are the best replacements.
Mostly full:
<?php
(gmp_scan1($a, $index) == $index)
?>
Mostly empty:
<?php
(gmp_scan0($a, $index) != $index)
?>
Still worst-case O(N), though.
gmp_testbit
(PHP 5 >= 5.3.0)
gmp_testbit — ビットが設定されているかどうかを調べる
説明
bool gmp_testbit
( resource $a
, int $index
)
指定したビットが設定されているかどうかを調べます。
パラメータ
- a
-
GMP 数リソース、 あるいは数値に変換可能な数値形式の文字列。
- index
-
調べたいビット。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
エラー / 例外
index に負の数を指定すると E_WARNING が発生します。
例
例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
bluej100@gmail
19-Jul-2007 09:48
19-Jul-2007 09:48
