【问题标题】:Java XOR over two arrays [closed]两个数组上的 Java XOR [关闭]
【发布时间】:2012-12-24 00:20:10
【问题描述】:

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

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

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

【问题讨论】:

  • 到目前为止你得到了什么?
  • 这应该对你有帮助 => stackoverflow.com/questions/726652/…
  • 你试过什么?你有什么困难?你需要什么帮助并不明显。我假设您不希望我们只是为您编写它。
  • 一个循环并为每个元素 - 对做一个异或。有什么问题?
  • 我发了一个解决方案,你觉得好用吗?

标签: java arrays matrix


【解决方案1】:

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

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

【讨论】:

  • Java 中没有logicalXOR() 方法。
【解决方案2】:

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

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

【讨论】:

  • 哇,b^array_2[i++] 是什么意思? b 电源阵列_2[1] ?
  • @user1843305 没有。 ^ 是 Java 中的 XOR 运算符。
  • 但是我不增加的整数是吗?如果确实如此,则意味着您执行以下操作: b ^ array_2[1] 并且 i 值变为 1,因此您正在递增它并同时使用它?
  • @user1843305 请阅读并了解数组索引和后增量。
  • int i=5, j=5; int a = i++; int b = ++j; i and j value: 6. a value: 5 b value: 6. 不知道我怎么不知道这个..谢谢
猜你喜欢
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
相关资源
最近更新 更多