2024 年 PHP Conference Japan

gmp_testbit

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gmp_testbit測試位元是否已設定

說明

gmp_testbit(GMP|int|string $num, int $index): bool

測試指定的位元是否已設定。

參數

num

一個 GMP 物件、一個 整數,或是一個可以被解讀為數字的 字串,其遵循的邏輯與在 gmp_init() 中使用自動基數偵測(例如當 base 等於 0 時)使用該字串相同。

索引

要測試的位元

返回值

如果在 num 中設定了位元,則返回 true,否則返回 false

錯誤/例外

index 小於零時,會發出 E_WARNING 等級的錯誤,並返回 false

範例

範例 #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)

參見

新增註解

使用者貢獻的註解 1 則註解

bluej100@gmail
17 年前
gmp_testbit 對我的(超過 64 位元)位元遮罩檢查非常有用。

同時,我認為這些是最佳的替代方案。

幾乎全滿

<?php
(gmp_scan1($a, $index) == $index)
?>

幾乎全空

<?php
(gmp_scan0($a, $index) != $index)
?>

不過,最糟情況下的時間複雜度仍然是 O(N)。
To Top