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

Ser*_*hiy 11 c c++ syntax operators

我有以下代码行:

contents[pos++] ^= key[shift++];
Run Code Online (Sandbox Code Playgroud)

运算符^=是什么意思?

Eva*_*ran 20

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

x ^= y;
Run Code Online (Sandbox Code Playgroud)

是相同的:

x = x ^ y;
Run Code Online (Sandbox Code Playgroud)

  • 当然,这假设`^ =`运算符尚未重载给谁知道什么。:-) (2认同)

Tim*_*per 11

这意味着在使用时执行XOR运算并将其设置为等于结果.contents[pos++]key[shift++]contents[pos++]

例:

contents[pos++]     00010101
key[shift++]        10010001
                    --------
                    10000100
Run Code Online (Sandbox Code Playgroud)