按位运算符 - 何时/如何使用运算符&,|,^,>>等等?

时间:2010-12-26 21:22:22

标签: operators bit-manipulation bitwise-operators bits

我知道他们做了什么,我只是不明白你何时能够使用它们。

3 个答案:

答案 0 :(得分:4)

当你需要操作一大块数据的单个位(比如一个字节或一个int)。这经常发生,例如,在处理以下的算法中

  • 加密
  • 压缩
  • 音频/视频处理
  • 网络(协议)
  • 持久性(文件格式)

答案 1 :(得分:2)

之前我曾用它们作为位掩码。假设您有一个项目列表,其中包含可以具有是或否值的项目列表(例如,汽车上的选项)。您可以通过将每个选项分配给数字中的二进制数字来指定一个整数列,该列将为每个选项提供值。

Example: 5 = 101 in binary
that would mean:
option 1 - yes
option 2 - no
option 3 - yes

如果你要查询这个,你会使用bitwise&或者操作员选择正确的项目。

Here is a good article更详细地介绍了它。

答案 2 :(得分:1)

一个例子是如果您将(A)RGB颜色存储为32位整数并且您想要提取单个颜色分量:

red = (rgb >> 16) & 0x000000ff;
green = (rgb >> 8) & 0x000000ff;
blue = rgb & 0x000000ff;

当然作为一名高级程序员,你通常更喜欢使用库函数来做这件事而不是自己摆弄比特。但是可以使用按位操作来实现库。