14

我必须对两个数组应用异或,比如假设我有:

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

请帮我一个算法..谢谢!

4

2 回答 2

27

如果您将这些数字存储在字节数组中,请使用以下简单的解决方案:

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
于 2013-01-09T18:30:18.797 回答
-3

这会是一个很好的解决方案吗?(感谢你给我的东西,我写了这篇文章)

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

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

  }
}

当然 array1,2 和输出将是 arrayLists

于 2013-01-09T18:34:54.110 回答