Подтвердить что ты не робот

Java XOR над двумя массивами

Мне нужно применить xor над двумя массивами, например, скажем, что у меня есть:

array_1: 1 0 1 0 1 1
array_2: 1 0 0 1 0 1

Я хотел бы иметь функцию, которая принимает два массива и возвращает массив, применяющий XOR, поэтому в этом случае я хотел бы вернуть эту функцию:

returned_array: 0 0 1 1 1 0

Пожалуйста, помогите мне с алгоритмом.. Спасибо!

4b9b3361

Ответ 1

Если вы храните эти числа в массивах байтов, используйте это прямое решение:

byte[] array_1 = new byte[] { 1, 0, 1, 0, 1, 1 };
byte[] array_2 = new byte[] { 1, 0, 0, 1, 0, 1 };

byte[] array_3 = new byte[6];

int i = 0;
for (byte b : array_1)
    array_3[i] = b ^ array_2[i++];

Выходной массив:

0 0 1 1 1 0

Ответ 2

Будет ли это хорошим решением? (Я написал это благодаря тому, что вы мне дали)

if(array1.length==array2.length){
  for(int i=0;i<array1.length;i++){

    output.add(logicalXOR(array1.get(i),array2.get(i)))

  }
}

Разумеется, array1,2 и output будут arrayLists