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

和 XOR 不 或 左/右转


当前回答

我很惊讶,没有人为互联网时代选择一个显而易见的答案。计算子网的有效网络地址。

http://www.topwebhosts.org/tools/netmask.php

其他回答

例如,我使用它们从打包的颜色值中获取RGB(A)值。

它们主要用于位操作(惊喜)。下面是在PHP代码库中找到的一些实际示例。

字符编码:

if (s <= 0 && (c & ~MBFL_WCSPLANE_MASK) == MBFL_WCSPLANE_KOI8R) {

数据结构:

ar_flags = other->ar_flags & ~SPL_ARRAY_INT_MASK;

数据库驱动程序:

dbh->transaction_flags &= ~(PDO_TRANS_ACCESS_MODE^PDO_TRANS_READONLY);

编译器实现:

opline->extended_value = (opline->extended_value & ~ZEND_FETCH_CLASS_MASK) | ZEND_FETCH_CLASS_INTERFACE;

当我第一次开始C编程时,我理解了真值表和所有的东西,但直到我读了这篇文章http://www.gamedev.net/reference/articles/article1563.asp(它给出了真实的例子),我才完全了解如何实际使用它。

我使用它们来实现快速BCD计算(会计师和审计员会对fp舍入感到不安)。

您可以使用它们作为一种快速而不常用的散列数据的方法。

int a = 1230123;
int b = 1234555;
int c = 5865683;
int hash = a ^ b ^ c;