2011-11-09 49 views

回答

4

你使用它的问题是什么的情况下。

假设您有一组8个布尔选项。我们通过opt8将它们称为opt1。由于某种原因,我们将所有这些选项存储在一个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