2

我已经用谷歌搜索了它,大多数教程都很神秘。有人可以教我甚至指向我的资源吗?我有 PHP 背景。

4

2 回答 2

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 )

于 2011-11-09T04:20:22.177 回答
1

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

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

于 2011-11-09T04:14:44.397 回答