任何使用位掩码的函数?

时间:2011-01-18 07:29:31

标签: php

我有int字段代表位掩码。有没有可用于位掩码的函数? issetBitunsetBitsetBit

谢谢

2 个答案:

答案 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)