Operátor XOR v Jave

1. Prehľad

V tomto krátkom návode sa dozvieme niečo o prostredí Java XOR operátor. Prejdeme si trochu teórie o XOR operácie, a potom uvidíme, ako ich implementovať v Jave.

2. The XOR Prevádzkovateľ

Začnime malou pripomienkou sémantiky súboru XOR prevádzka. The XOR logická operácia, príp exkluzívny príp, vezme dva boolovské operandy a vráti true, len ak sú operandy odlišné. Vráti teda hodnotu false, ak majú dva operandy rovnakú hodnotu.

Takže XOR operátor sa dá použiť napríklad vtedy, keď musíme skontrolovať dve podmienky, ktoré nemôžu byť pravdivé súčasne.

Uvažujme o dvoch podmienkach, A a B. Nasledujúca tabuľka potom zobrazuje možné hodnoty parametra A XOR B:

The A XOR B prevádzka je ekvivalentná (A AND! B) ALEBO (! A A B). Z dôvodu jasnosti sú zahrnuté zátvorky, ktoré sú však voliteľné A operátor má prednosť pred ALEBO operátor.

3. Ako na to v Jave?

Teraz sa pozrime, ako vyjadriť XOR prevádzka v Jave. Samozrejme máme možnosť použiť && a || operátormi, ale to môže byť trochu nepríjemné, ako uvidíme.

Predstavte si a Auto trieda majúca dve boolovský atribúty: nafta a Manuálny. A teraz, povedzme, chceme zistiť, či je auto buď naftové alebo manuálne, ale nie oboje.

Poďme to skontrolovať pomocou && a || operátori:

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

To je trochu zdĺhavé, najmä ak vezmeme do úvahy, že máme alternatívu - Javu XOR operátor, zastúpený ^ symbol. Je to bitový operátor - to znamená, že operátor porovnáva zodpovedajúce bity dvoch hodnôt, aby vrátil výsledok. V XOR v prípade, že dva bity rovnakej polohy majú rovnakú hodnotu, výsledný bit bude 0. V opačnom prípade to bude 1.

Takže namiesto nášho ťažkopádneho XOR implementáciu môžeme priamo použiť ^ operátor:

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

Ako môžeme, ^ operátor nám umožňuje byť pri vyjadrovaní stručnejší XOR operácie.

Na záver stojí za zmienku, že XOR operátor, rovnako ako ostatné bitové operátory, pracuje s každým primitívnym typom. Uvažujme napríklad dve celé čísla 1 a 3, ktorých binárne vyjadrenia sú 00000001 a 000000011. Potom pomocou XOR Výsledkom operátora medzi nimi bude celé číslo 2:

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

Iba druhý bit sa líši v týchto dvoch číslach, preto je výsledok XOR operátor na tomto bite bude 1. Všetky ostatné bity sú identické, teda ich bitové XOR výsledok je 0, čo nám dáva konečnú hodnotu 00000010 - binárne vyjadrenie celého čísla 2.

4. Záver

V tomto článku sme sa dozvedeli o prostredí Java XOR operátor. Videli sme, že ponúka stručný spôsob vyjadrovania XOR operácie.

Celý kód článku ako obvykle nájdete na GitHub.


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