位域1 = 00100110
位域2 = 00110011
((BitField1 & ~BitField2) | (BitField2 & ~BitField1)); = 00010101
所以这是一个常见的按位运算的长版本,它是什么?
想了解上面的位操作是否是一些已知的操作?
位域1 = 00100110
位域2 = 00110011
((BitField1 & ~BitField2) | (BitField2 & ~BitField1)); = 00010101
所以这是一个常见的按位运算的长版本,它是什么?
想了解上面的位操作是否是一些已知的操作?
这是异或。在 BitField1 或 BitField2 但不是两者都为 1 的位中,您最终会得到 1。
正如维基百科所说,一种用途是
“汇编语言程序员有时使用 XOR 作为将寄存器的值设置为零的捷径。对一个值对自身执行 XOR 总是产生零。”