2013-01-09 9 views
10

muszę zastosować xor na dwóch tablicach, takich jak powiedzmy mam:Java XOR ponad dwie tablice

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

chciałbym mieć funkcję, która przyjmuje dwa tablic i zwraca tablicę stosowania XOR, więc w tym przypadku chciałbym, aby funkcja ta zwróciła:

returned_array: 0 0 1 1 1 0 

Pomóż mi z algorytmem .. Dzięki!

+1

co masz do tej pory? – NPE

+3

To powinno pomóc => http://stackoverflow.com/questions/726652/creating-a-logical-clusive-lub-operator-in-java – cggaurav

+1

Co próbujesz? Z czym się miewasz? Nie jest oczywiste, z czym potrzebujesz pomocy. Zakładam, że nie chcesz, żebyśmy napisali to dla ciebie. –

Odpowiedz

18

Jeśli przechowywanie tych numerów tablic bajtowych, należy użyć tego prostego rozwiązania: Array

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++]; 

wyjściowy:

0 0 1 1 1 0 
+0

wow, co oznacza b^tablica_2 [i ++]? b moc array_2 [1]? – Ben

+1

@ user1843305 no.^jest operatorem XOR w Javie. – Juvanis

+0

, ale liczba całkowita nie zwiększa się? jeśli tak, to znaczy, że robisz coś takiego: b^array_2 [1], a wartość i staje się 1, więc zwiększasz ją i używasz w tym samym czasie? – Ben

0

byłoby to dobre rozwiązanie? (Napisałem to dzięki co mi dał)

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

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

    } 
} 

oczywiście array1,2 i wyjście byłoby arrayLists

+1

Nie ma metody logicalXOR() w Javie. – zeeshan