Что происходит в этой строке?: xor ^= A[i];
Что происходит в этой строке?: xor ^= A[i];
Весь код:
public class FindOdd {
public static int findIt(int[] A) {
int xor = 0;
for (int i = 0; i < A.length; i++) {
xor ^= A[i];
System.out.println(xor);
}
return xor;
}
}
Ответы (1 шт):
Автор решения: Olmicron
→ Ссылка
^ — это побитовый оператор исключающее "или"
В данном случае, к xor применяется ^, который копирует бит, если он установлен в одном из операндов, но не в обоих.
Допустим есть:
xor = 0011 1100
A[i] = 0000 1101
Соответственно xor ^= A[i] // xor = 0011 0001
Чтобы визуально проще было:
0011 1100 // xor
0000 1101 // A[i]
0011 0001 // xor ^= A[i]