заводной ^ оператор - PullRequest
       13

заводной ^ оператор

5 голосов
/ 17 августа 2011

Когда дано два логических аргумента, оператор ^ выполняет монопольный или, например,

true ^ true == false
true ^ false == true
false ^ true == true
false ^ false == false

Когда ему дано два числовых аргумента, он что-то делает, но я понятия не имею, что.Сначала я подумал, что это модульное разделение, потому что

(5 ^ 5) == 0

Однако

(10 ^ 4) == 14

Так что это не модульное разделение, это какое-то смещение битов?

1 Ответ

12 голосов
/ 17 августа 2011

^ делает то же самое, что и в Java и большинстве других языков:

Это битовое исключающее ИЛИ (короткое: битовое XOR)

Это означает, что для каждого бита в двоичном представлении двух чисел результирующий бит на выходе будет bit_in_first_value ^ bit_in_second_value.

...