Az XOR operátor Java-ban
1. Áttekintés
Ebben a rövid bemutatóban megismerjük a Java-t XOR operátor. Átmegyünk egy kis elméletről XOR műveleteket, majd meglátjuk, hogyan lehet ezeket megvalósítani a Java-ban.
2. A XOR Operátor
Kezdjük egy kis emlékeztetővel a XOR művelet. A XOR logikai művelet, vagy kizárólagos vagy, két logikai operandusot vesz fel, és csak akkor ad igazat, ha az operandusok különböznek. Így hamis eredményt ad, ha a két operandus értéke azonos.
Így a XOR Az operátor például akkor használható, amikor két feltételt kell ellenőriznünk, amelyek nem lehetnek egyszerre igazak.
Tekintsünk két feltételt, A és B. Ezután a következő táblázat bemutatja a A XOR B:
A A XOR B a művelet egyenértékű (A ÉS! B) VAGY (! A ÉS B). A zárójeleket az érthetőség kedvéért felvették, de választhatóak, mivel a ÉS üzemeltető elsőbbséget élvez a VAGY operátor.
3. Hogyan kell csinálni Java-ban?
Most nézzük meg, hogyan fejezzük ki a XOR művelet Java-ban. Természetesen lehetőségünk van a && és || operátorok, de ez kissé szókimondó lehet, amint látni fogjuk.
Képzelje el a Autó osztályban kettő logikai attribútumok: dízel és kézikönyv. És most tegyük fel, hogy meg akarjuk mondani, hogy az autó dízel vagy kézi, de nem mindkettő.
Ellenőrizzük ezt a && és || üzemeltetők:
Autós autó = Car.dieselAndManualCar (); logikai dízelXorManual = (car.isDiesel () &&! car.isManual ()) || (! car.isDiesel () && car.isManual ());
Ez egy kicsit hosszú, főleg ha figyelembe vesszük, hogy van alternatívánk - a Java XOR üzemeltető, amelyet a ^ szimbólum. Ez egy bitenkénti operátor - vagyis olyan operátor, amely összehasonlítja két érték egyező bitjeit az eredmény visszaadása érdekében. Ban,-ben XOR esetben, ha két, ugyanabban a helyzetben lévő bitnek ugyanaz az értéke, az eredményül kapott bit 0 lesz. Ellenkező esetben 1 lesz.
Szóval, a mi nehézkes helyett XOR megvalósítását, közvetlenül használhatjuk a ^ operátor:
Autós autó = Car.dieselAndManualCar (); logikai dízelXorManual = autó.isDiesel () ^ autó.isManual ();
Ahogy tudjuk gyengíteni, a ^ operátor lehetővé teszi számunkra, hogy tömörebbek legyünk a kifejezésben XOR tevékenységek.
Végül érdemes megemlíteni, hogy a XOR operátor, mint a többi bitenkénti operátor, minden primitív típussal működik. Vegyünk például két egész számot: 1 és 3, amelyek bináris reprezentációi: 00000001 és 000000011. Ezután a XOR operátor közöttük a 2 egész szám lesz:
assertThat (1 ^ 3) .isEqualTo (2);
Csak a második bit különbözik abban a két számban, ezért a XOR operátor ezen a biten 1 lesz. Az összes többi bit azonos, tehát bitenként XOR Az eredmény 0, így a 00000010 végső értéket kapjuk - a 2 egész szám bináris ábrázolását.
4. Következtetés
Ebben a cikkben megismerhettük a Java-t XOR operátor. Láttuk, hogy ez egy tömör kifejezési módot kínál XOR tevékenységek.
Szokás szerint a cikk teljes kódja megtalálható a GitHubon.