在c / c ++中^ =是什么意思?

我有以下代码行:

contents[pos++] ^= key[shift++]; 

运算符^=是什么意思?

它是XOR赋值运算符。 基本上:

 x ^= y; 

是相同的:

 x = x ^ y; 

这意味着使用key[shift++]contents[pos++]执行XOR运算 ,并将contents[pos++]等于结果。

例:

 contents[pos++] 00010101 key[shift++] 10010001 -------- 10000100 

它是一个按位XOR运算符。

 x ^= y 

基本上是

 x = x ^ y 

当然,这是一个按位操作

http://en.wikipedia.org/wiki/Bitwise_operation