что означает ^ = в с / с ++? - PullRequest
10 голосов
/ 03 марта 2011

У меня есть следующая строка кода:

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

Что означает оператор ^=?

Ответы [ 4 ]

18 голосов
/ 03 марта 2011

Это оператор присваивания XOR . В основном:

x ^= y;

совпадает с:

x = x ^ y;
11 голосов
/ 03 марта 2011

Это означает, что необходимо выполнить операцию XOR на contents[pos++], используя key[shift++] и установить contents[pos++] равным результату.

Пример:

contents[pos++]     00010101
key[shift++]        10010001
                    --------
                    10000100
2 голосов
/ 03 марта 2011

Это побитовый оператор XOR.

x ^= y

в основном

x = x ^ y

Конечно, это побитовая операция

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

0 голосов
/ 03 марта 2011

Это побитовое исключающее ИЛИ для двух целых чисел. http://bytes.com/topic/c/answers/726626-what-caret-qualifier

...