- Bitový operátor XOR je také známý jako Exkluzivní OR
- Označuje se pomocí '^'
- Jak název napovídá, funguje na bitová úroveň z operandů.
- Operátor Bitwise XOR spadá do kategorie bitových operátorů.
- V bitovém exkluzivním operátoru OR (XOR) jsou vyžadovány dva operandy a tyto dva operandy jsou odděleny symbolem XOR, tj. '^'.
- Abychom určili výstup nebo výsledek, který vyjde po aplikaci operátoru XOR na dva operandy, musíme se řídit tabulkou logické pravdivosti operátoru XOR.
- XOR Truth Table je matematická tabulka vytvořená pomocí správné logiky operátoru XOR.
- Logika použitá za operátorem XOR je; kdykoli je na dva aplikována operace XOR odlišný bitů dvou operandů, pak výsledek vždy vytvoří '1', a pokud je na dva aplikována operace XOR stejný bitů dvou operandů, pak výsledek produkuje výstup '0'.
Pravdivostní tabulka výhradního operátoru OR (XOR).
Nechť jsou dva operandy; První je A a druhý B, celkové kombinace vstupu tvořené těmito dvěma operandy budou 4. Pomocí následující pravdivostní tabulky XOR určíme odpovídající výstup. Výsledek bude zachycen v C zde C = A ^ B.
V této pravdivostní tabulce bereme vstup ve formě bitů, tj. 0 a 1, a výstup bude také generován ve formě bitů, tj. 0 a 1.
Zde ve výše uvedené tabulce pravdy XOR pozorujeme, že když jsou hodnoty operandů A a B různé, tj. ( 0, 1 ), ( 1, 0 ), výsledek, který vyjde, bude vždy 1. A když hodnoty operandů A a B jsou stejné, tj. ( 0, 0 ), ( 1, 1 ), výsledek, který vyjde, bude vždy 0.
Podobně můžeme tímto způsobem nakreslit pravdivostní tabulku pro Boolean hodnoty -
Nechť jsou dva operandy; ten první je A a ten druhý je B . Celkové kombinace vstupu tvořené těmito dvěma operandy budou 4. Pomocí následující pravdivostní tabulky XOR určíme odpovídající výstup. Výsledek bude zachycen v C, zde C = A ^ B.
V této pravdivostní tabulce bereme vstup ve formě hodnot pravdy, tj. True (T) a False (F). Výstup bude také generován ve formě skutečných hodnot, tj. T a F.
Zde ve výše uvedené tabulce pravdy XOR pozorujeme, že když jsou hodnoty operandů A a B různé, tj. (F, T), (T, F), výsledek bude vždy T. hodnoty operandů A a B jsou stejné, tj. ( F, F ), ( T, T ), výsledkem bude vždy F.
Z výše uvedených tabulek to vidíme T ( True ) je označeno jedničkou a F ( False ) je označeno 0.
skener v Javě
Kroky k vyřešení daného problému -
- Operandy uvedené v problému budou vždy v desítkové hodnotě.
- Nejprve musíme převést hodnoty operandů na binární
- Po převodu hodnot operandů na binární čísla umístěte oba operandy jeden přes druhý.
- Pamatujte, že před použitím operace výhradního OR (XOR) na ně laskavě zkontrolujte počet číslic v nich.
- Pokud se počet číslic neshoduje, nuly navíc na levém konci malého operandu vyvažují počty číslic.
- Nakonec s pomocí výše uvedené pravdivostní tabulky aplikujte operaci XOR na operandy jeden po druhém, přičemž pro aplikaci operace XOR berte jeden bit po druhém.
- Nakonec se výsledek vytvoří ve formě výstupu.
- Produkovaný výstup bude v binární formě, nyní převeďte binární formu do desítkové formy a poznamenejte si výslednou hodnotu.
Provedení operace Bitwise Exclusive OR (XOR) v C++
Podívejme se podrobněji na provádění operace XOR v C++ pomocí příkladů -
Příklad 1: Najděte výhradní OR celočíselných hodnot; 10 a 14. Také to vysvětlete a napište kód provádění v C++.
Řešení: Uvažujme dvě proměnné, 'a' a 'b', abychom uložili odpovídající dva operandy uvedené ve výše uvedené otázce, tj. 10 a 14.
Zde a = 10 a b = 14.
Budeme postupovat podle níže uvedených kroků, abychom zjistili exkluzivní OR daných dvou operandů.
- Víme, že 10 a 14 jsou v desítkovém tvaru a pro aplikaci bitové operace XOR je nutné je převést do binárního tvaru.
- Binární forma 'a', tj. 10 je '1010' a binární forma 'b', tj. 14 je '1110'.
- Zde pozorujeme, že počet binárních číslic přítomných v a je čtyři a počet binárních číslic přítomných v b je také 4; proto je počet binárních číslic přítomných v obou proměnných stejný a již vyvážený, nepotřebujeme přidávat další počet 0, abychom to vyrovnali.
- Nyní položme binární číslice přítomné v 'b' dolů na binární číslice přítomné v 'a'.
- Nakonec použijte operaci XOR jeden po druhém na odpovídající bity a poznamenejte si výstup.
- Výstup vygenerovaný konečně bude v binární podobě, jak byla výše uvedená otázka uvedena v desítkovém tvaru, takže musíme výsledek převést do desítkové formy.
Vysvětlení:
a = 10 ( v desítkovém tvaru )
sloučit řazení java
b = 14 ( v desítkovém tvaru )
Nyní pro XOR b potřebujeme převést a a b v binární podobě -
a = 1010 (v binárním tvaru)
b = 1110 (v binárním tvaru)
Nyní použití operace XOR na a a b -
a = 1010
b = 1110
----------------
a ^ b = 0100 (V binární podobě)
Výsledek a ^ b je 0100, což je v binárním tvaru.
linuxový správce úloh
Nyní převedeme výsledek do desítkové formy, což je 4.
10^14 = 4
POZNÁMKA: Pomocí výše uvedené pravdivostní tabulky XOR se generují odpovídající bity.
Nyní použijeme bitovou operaci XOR na 10 a 14 v jazyce C++ a dostaneme výsledek, tedy 4.
C++ kód pro výše uvedený příklad:
//************************ C++ Code ****************************** #include using namespace std; int main () { int a, b, c ; // Initializing integer variables to store data values cout <' << endl ; cout <> a ; // taking a as input from user cout <> b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout << 'Applying XOR operation on a and b: '<< endl ; cout << 'a ^ b = ' << c << endl ; // Printing the output } </'>
Výstup
Příklad 2: Najděte výhradní OR celočíselných hodnot; 3 a 15. Také to vysvětlete a napište kód provádění v C++.
Řešení: Uvažujme dvě proměnné, 'a' a 'b', abychom uložili odpovídající dva operandy uvedené ve výše uvedené otázce, tj. 3 a 15.
Zde a = 3 a b = 15.
Budeme postupovat podle níže uvedených kroků, abychom zjistili exkluzivní OR daných dvou operandů.
- Víme, že 3 a 15 jsou v desítkovém tvaru a pro aplikaci bitové operace XOR je nutné je převést do binárního tvaru.
- Binární forma 'a', tj. 3 je 'jedenáct' a binární forma 'b', tj. 15 je '1111'.
- Zde uvidíme, že počet binárních číslic přítomných v a je dvě a počet binárních číslic přítomných v b je čtyři; proto počet binárních číslic přítomných v obou proměnných není stejný. Nevyvážení tedy potřebujeme přidat další počet nul na levou stranu nižšího binárního čísla, tj. a, což je ' jedenáct' , abych to vyvážil.
- Po vyrovnání je hodnota a '0011' a b je '1111'.
- Nyní polož binární číslice přítomné v 'b' dolů na binární číslice přítomné v 'a'.
- Nakonec použijte operaci XOR jeden po druhém na odpovídající bity a poznamenejte si výstup.
- Výstup vygenerovaný konečně bude v binární podobě, jak byla výše uvedená otázka uvedena v desítkovém tvaru, takže musíme výsledek převést do desítkové formy.
Vysvětlení:
a = 3 ( v desítkovém tvaru )
b = 15 ( v desítkovém tvaru )
Nyní pro XOR b potřebujeme převést a a b v binární podobě -
java int v řetězci
a = 0011 (v binárním tvaru)
amplitudové modulace
b = 1111 (v binárním tvaru)
Nyní použití operace XOR na a a b -
a = 0011
b = 1111
----------------
a ^ b = 1100 (V binární podobě)
Výsledek a ^ b je 1100, což je v binárním tvaru.
Nyní převedeme výsledek do desítkové formy, což je 12.
3^15 = 12
POZNÁMKA: Pomocí výše uvedené pravdivostní tabulky XOR se generují odpovídající bity.
Nyní použijeme bitovou operaci XOR na 3 a 15 v jazyce C++ a získáme výsledek, tedy 12.
C++ kód pro výše uvedený příklad:
//************************ C++ Code ****************************** #include using namespace std; int main () { int a, b, c ; // Initializing integer variables to store data values cout <' << endl ; cout <> a ; // taking a as input from user cout <> b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout << 'Applying XOR operation on a and b: '<< endl ; cout << 'a ^ b = ' << c << endl ; // Printing the output } </'>
Výstup