我已经用谷歌搜索了它,大多数教程都很神秘。有人可以教我甚至指向我的资源吗?我有 PHP 背景。
2 回答
您使用它的上下文。
假设您有一组 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 )
这个页面实际上似乎是一个很好的介绍,有很多例子