Es gibt einen Operator namens Exclusive oder im Java -Bit -Operator, der durch das Symbol (^) dargestellt wird. Die Betriebsregeln sind: Unter den Bits zweier Operanden beträgt das Ergebnis 0, wenn das Ergebnis 1 ist, wenn die Bits von zwei Operanden gleich sind und das Ergebnis 1 ist, wenn das Ergebnis unterschiedlich ist. Lassen Sie uns unten ein Beispiel sehen:
public class testxor {public static void main (String [] args) {int i = 15, j = 2; System.out.println ("i ^ j =" + (i ^ j));}}Das Betriebsergebnis ist: i^j = 13.
Die Analyse des obigen Programms, der Umwandlung von I = 15 in Binär ist 1111, die Konvertierung von J = 2 in Binärzahlen 0010 und das Erhalten von 1101 gemäß den Betriebsregeln von XOR und die Umwandlung in die Dezimalzahl beträgt 13.
Mit dieser Regel können wir bestimmte Algorithmen flexibel anwenden. Wenn beispielsweise 2K+1 -Zahlen und 2k von ihnen gleich sind, müssen Sie die verschiedenen Zahlen finden, wie z.
public class testxor {public static void main (String [] args) {int [] array = {2,3,4,4,3,5,6,6,5}; int v = 0; für (int i = 0; i <array.Length; i ++) {v ^= Array [i];Das Ergebnis ist: Die Zahl, die nur einmal erscheint, ist 2.
Wir verwenden nur die Regeln des XOR -Operators, um das Prinzip zu erhalten, dass eine Zahl und 0 die XOR oder sich selbst sind, und eine Zahl und sich selbst sind die Xor oder sich selbst.
Die obige Berechnungsmethode: V = 2^3^4^4^3^5^6^6^5;
Nach dem Gesetz des Austauschs und den oben genannten Regeln
Die Zahl, die erst einmal erscheint, kann ausgegeben werden (2K derselben Voraussetzungen müssen erfüllt sein)
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels über die Codeanalyse des XOR -Problems in Java. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!