public class XorBit {
public static void main(String[] args) {
int[] arr = {1,1,3,2,3,2,3,4};
int temp = 0;
for (int i = 0; i < arr.length; i++) {
temp = arr[i]^temp;
}
int eor = temp;
// 0111
// 提取最右侧的1
temp = temp & ((~temp)+1);
int right = 0;
int[] arr1 = new int[arr.length];
int[] arr2 = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
right = arr[i] & temp;
if(right == temp){
arr1[i] = arr[i];
}else{
arr2[i] = arr[i];
}
}
temp = 0;
for (int i = 0; i < arr1.length; i++) {
temp = arr1[i]^temp;
//System.out.print(arr1[i]+" ");
}
System.out.println(eor +" " +temp+" "+(eor ^ temp));
temp = 0;
for (int i = 0; i < arr2.length; i++) {
temp = arr2[i]^temp;
//System.out.print(arr1[i]+" ");
}
// 0111
// 0011
// 0100
System.out.println(temp);
}
}