XOR operator u Javi

1. Pregled

U ovom kratkom vodiču naučit ćemo o Javi XOR operater. Proći ćemo kroz malo teorije o tome XOR operacije, a zatim ćemo vidjeti kako ih implementirati u Javi.

2. The XOR Operater

Počnimo s malim podsjetnikom na semantiku XOR operacija. The XOR logička operacija, ili isključiva ili, uzima dva logička operanda i vraća true ako i samo ako su operandi različiti. Dakle, vraća false ako dva operanda imaju istu vrijednost.

Dakle, XOR Operator se može koristiti, na primjer, kada moramo istodobno provjeriti dva uvjeta koji ne mogu biti istiniti.

Razmotrimo dva uvjeta, A i B. Tada sljedeća tablica prikazuje moguće vrijednosti A XOR B:

The A XOR B operacija je ekvivalentna (A I! B) ILI (! A I B). Zagrade su uključene radi preglednosti, ali nisu obavezne, kao I operator ima prednost nad ILI operater.

3. Kako to učiniti na Javi?

Sada, da vidimo kako izraziti XOR rad u Javi. Naravno, imamo mogućnost korištenja && i || operatora, ali ovo može biti malo rječito, kao što ćemo vidjeti.

Zamislite a Automobil razred koji ima dvoje boolean atributi: dizel i priručnik. A sada, recimo da želimo reći je li automobil ili dizel ili ručni, ali ne oboje.

Provjerimo ovo pomoću && i || operateri:

Automobil automobila = Car.dieselAndManualCar (); boolean dieselXorManual = (car.isDiesel () &&! car.isManual ()) || (! car.isDiesel () && car.isManual ());

To je malo dugo, pogotovo s obzirom na to da imamo alternativu - Java XOR operatora, kojeg zastupa ^ simbol. To je bitni operator - to jest operator koji uspoređuje podudarajuće bitove dviju vrijednosti kako bi vratio rezultat. U XOR slučaju, ako dva bita istog položaja imaju istu vrijednost, rezultirajući bit bit će 0. U suprotnom, bit će 1.

Dakle, umjesto našeg glomaznog XOR implementaciju, možemo izravno koristiti ^ operater:

Automobil automobila = Car.dieselAndManualCar (); boolean dieselXorManual = car.isDiesel () ^ car.isManual ();

Kao što znamo, ^ operator nam omogućuje da budemo koncizniji u izražavanju XOR operacijama.

Konačno, vrijedi spomenuti da XOR operator, kao i ostali bitni operatori, radi sa svim primitivnim vrstama. Na primjer, uzmimo u obzir dvije cijele brojeve 1 i 3, čiji su binarni prikazi 00000001, odnosno 000000011. Zatim, koristeći XOR operator između njih rezultirat će cijelim brojem 2:

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

Samo se drugi bit razlikuje u ta dva broja, dakle rezultat je XOR operator na ovom bitu bit će 1. Svi ostali bitovi su identični, prema tome i bitni XOR rezultat je 0, dajući nam konačnu vrijednost 00000010 - binarni prikaz cijelog broja 2.

4. Zaključak

U ovom smo članku saznali više o Javi XOR operater. Vidjeli smo da nudi sažet način izražavanja XOR operacijama.

Kao i obično, puni kod članka možete pronaći na GitHubu.