De XOR-operator in Java

1. Overzicht

In deze korte tutorial gaan we meer leren over Java XOR operator. We zullen er een beetje theorie over doornemen XOR bewerkingen, en dan zullen we zien hoe we ze in Java kunnen implementeren.

2. Het XOR Operator

Laten we beginnen met een kleine herinnering aan de semantiek van het XOR operatie. De XOR logische bewerking, of exclusief of, neemt twee booleaanse operanden en retourneert true als en slechts als de operanden verschillend zijn. Het retourneert dus false als de twee operanden dezelfde waarde hebben.

Dus de XOR operator kan bijvoorbeeld worden gebruikt wanneer we moeten controleren op twee voorwaarden die niet tegelijkertijd waar kunnen zijn.

Laten we eens kijken naar twee voorwaarden, EEN en B. Vervolgens toont de volgende tabel de mogelijke waarden van A XOR B:

De A XOR B werking is gelijk aan (A EN! B) OF (! A EN B). Er zijn haakjes toegevoegd voor de duidelijkheid, maar zijn optioneel, aangezien de EN operator heeft voorrang op de OF operator.

3. Hoe te doen in Java?

Laten we nu eens kijken hoe we de XOR operatie in Java. Natuurlijk hebben we de mogelijkheid om de && en || operators, maar dit kan een beetje omslachtig zijn, zoals we zullen zien.

Stel je een Auto klasse met twee boolean attributen: diesel en handleiding. En nu, laten we zeggen dat we willen weten of de auto een diesel of een handgeschakelde auto is, maar niet beide.

Laten we dit controleren met behulp van de && en || operators:

Auto auto = Car.dieselAndManualCar (); boolean dieselXorManual = (car.isDiesel () &&! car.isManual ()) || (! car.isDiesel () && car.isManual ());

Dat is een beetje lang, vooral gezien het feit dat we een alternatief hebben: de Java XOR operator, vertegenwoordigd door de ^ symbool. Het is een bitsgewijze operator, dat wil zeggen een operator die de overeenkomende bits van twee waarden vergelijkt om een ​​resultaat te retourneren. In de XOR In het geval dat twee bits van dezelfde positie dezelfde waarde hebben, is de resulterende bit 0. Anders is het 1.

Dus in plaats van onze omslachtige XOR implementatie, kunnen we direct de ^ operator:

Auto auto = Car.dieselAndManualCar (); boolean dieselXorManual = car.isDiesel () ^ car.isManual ();

Zoals we kunnen, de ^ operator stelt ons in staat om beknopter te zijn in het uitdrukken XOR operaties.

Ten slotte is het vermeldenswaard dat de XOR operator werkt, net als de andere bitsgewijze operatoren, met elk primitief type. Laten we bijvoorbeeld eens kijken naar twee gehele getallen 1 en 3, waarvan de binaire representaties respectievelijk 00000001 en 000000011 zijn. Gebruik vervolgens de XOR operator ertussen resulteert in het gehele getal 2:

assertThat (1 ^ 3) .isEqualTo (2);

Alleen het tweede bit is anders in die twee getallen, dus het resultaat van de XOR operator op deze bit zal 1 zijn. Alle andere bits zijn identiek, dus hun bitsgewijze XOR resultaat is 0, wat ons een uiteindelijke waarde geeft van 00000010 - de binaire weergave van het gehele getal 2.

4. Conclusie

In dit artikel hebben we geleerd over Java XOR operator. We zagen dat het een beknopte manier biedt om uit te drukken XOR operaties.

Zoals gewoonlijk is de volledige code van het artikel te vinden op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found