bitmasking如何工作?

时间:2011-11-09 04:11:07

标签: php bitmask

我已经google了,大多数教程都很神秘。有人可以教我甚至指点我的资源吗?我有PHP背景。

2 个答案:

答案 0 :(得分:4)

你正在使用它的背景。

假设你有一组8个布尔选项。我们称之为opt1至opt8。现在出于某种原因,我们将所有这些选项存储在一个8位值中。这不是您通常想要做的事情,但它肯定有其用途,特别是与现有系统和API接口。

因此,我们有以下8位(1字节)数字,以二进制表示:

10010011

每个位对应一个特定选项,按此顺序:

87654321

到目前为止我?现在,让我们进入一些基本的逻辑运算符。想想布尔值。如果true OR true,则我们获得true。如果true AND true,我们会获得true。如果true AND false我们得到了错误。我们可以使用按位运算符做同样的事情。

让我们试试10010011 OR 11111111。基本上,我们将在每一点上执行该逻辑运算符,并获得结果11111111

为什么这有用?假设我们想要获得一个地方的价值......也许选择7.我们可以10010011 AND 01000000。我们最终会得到一个只代表一个选项的数字。 (当然,如果你想要一个数字1或0,你需要除以适当的位置值。

这有很多应用。你如何使用它取决于你需要什么。

关于这一点的维基百科文章也不错: http://en.wikipedia.org/wiki/Mask_(computing

答案 1 :(得分:1)

这个页面实际上似乎是一个非常好的介绍,有很多例子

http://php.net/manual/en/language.operators.bitwise.php