下面的位运算符在现实世界中有哪些用例?

和 XOR 不 或 左/右转


当前回答

我不认为这是按位计算的,但是ruby的Array通过普通整数按位操作符定义了集合操作。因此[1,2,4]&[1,2,3]# =>[1,2]。对于a ^ b# =>集差值和| b# =>并集也是如此。

其他回答

奇怪吗?

(value & 0x1) > 0

它能被2(偶数)整除吗?

(value & 0x1) == 0

Base64编码就是一个例子。Base64编码用于将二进制数据表示为通过电子邮件系统(和其他目的)发送的可打印字符。Base64编码将一系列8位字节转换为6位字符查找索引。位操作,移位,'ing, 'ing, not'ing对于实现Base64编码和解码所需的位操作非常有用。

当然,这只是无数例子中的一个。

这是一个从字节格式的位图图像中读取颜色的例子

byte imagePixel = 0xCCDDEE; /* Image in RRGGBB format R=Red, G=Green, B=Blue */

//To only have red
byte redColour = imagePixel & 0xFF0000; /*Bitmasking with AND operator */

//Now, we only want red colour
redColour = (redColour >> 24) & 0xFF;  /* This now returns a red colour between 0x00 and 0xFF.

我希望这个小例子可以帮助....

不久前,我在维基上写了一篇小文章,展示了一个二进制的作者/读者。它在位级上工作,并展示了如何使用位操作符来打包数据。这可能是一个“现实世界”的例子,因为它在游戏中也有应用。

我使用它们作为选项处理程序,例如在访问控制列表中描述特定的资源。

看看这篇文章http://planetozh.com/blog/2006/05/php-bitwise-operators-example-of-use/

Edit:

还有一个链接: http://blog.code-head.com/how-to-write-a-permission-system-using-bits-and-bitwise-operations-in-php