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

和 XOR 不 或 左/右转


当前回答

大约三分钟前,我刚刚使用了位异或(^)来计算与PLC串行通信的校验和…

其他回答

按位&用于屏蔽/提取字节的某一部分。

1字节变量

 01110010
&00001111 Bitmask of 0x0F to find out the lower nibble
 --------
 00000010

特别是移位运算符(<< >>)经常用于计算。

当你只想改变微控制器输出的一些位,但要写入的寄存器是一个字节时,你可以这样做(伪代码):

char newOut = OutRegister & 0b00011111 //clear 3 msb's
newOut = newOut | 0b10100000 //write '101' to the 3 msb's
OutRegister = newOut //Update Outputs

当然,许多微控制器允许你单独改变每一位。

似乎没有人提到定点数学。

(是的,我老了,好吗?)

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

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

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