我有int
字段代表位掩码。有没有可用于位掩码的函数? issetBit
,unsetBit
,setBit
?
谢谢
答案 0 :(得分:7)
使用bitwise operators。但如果你想要功能,这里有一些功能。
function issetBit(& $mask, $bit) {
return (bool)($mask & (1 << $bit));
}
function unsetBit(& $mask, $bit) {
$mask &= ~(1 << $bit);
}
function setBit(& $mask, $bit) {
$mask |= (1 << $bit);
}
用法:第一个参数是你当前的位掩码;第二个参数是位的数量(从零开始)。即issetBit($mask, 2)
等于(bool)($mask & 4)
但是,您无法使用这些功能一次测试/设置/取消设置多个位。
答案 1 :(得分:2)
你想要Bitwise运算符: http://php.net/manual/en/language.operators.bitwise.php