- Bitenkénti XOR operátor más néven Exkluzív VAGY
- A használatával jelöljük '^'
- Ahogy a név is mutatja, működik a bit szinten az operandusok közül.
- A Bitwise XOR operátor a Bitwise operátorok kategóriájába került.
- A bitenkénti kizárólagos VAGY operátorban (XOR) két operandusra van szükség, és ezt a két operandust az XOR szimbólum, azaz a '^' választja el.
- Az XOR operátor két operanduson történő alkalmazása után megjelenő kimenet vagy eredmény meghatározásához követnünk kell az XOR operátor logikai igazságtáblázatát.
- Az XOR igazságtáblázat az XOR operátor megfelelő logikájával összeállított matematikai táblázat.
- Az XOR operátor mögött használt logika a következő; amikor XOR műveletet alkalmaznak a kettőre különböző két operandus bitjei, akkor az eredmény mindig létrejön '1', és ha az XOR műveletet alkalmazzuk a kettőre azonos két operandus bitjei, akkor az eredmény kimenetet ad '0'.
Kizárólagos VAGY (XOR) operátor igazságtáblázata
Legyen két operandus; Az első az A, a második pedig a B, a két operandus által alkotott bemenet összes kombinációja 4 lesz. A következő XOR igazságtáblázat segítségével meghatározzuk a megfelelő kimenetet. Az eredmény itt lesz C-ben rögzítve C = A ^ B.
Ebben az igazságtáblázatban a bemenetet bitek, azaz 0 és 1 formájában veszünk fel, és a kimenetet is bitek, azaz 0 és 1 formájában generáljuk.
Itt, a fenti XOR Truth táblázatban azt figyeljük meg, hogy ha az A és B operandusok értéke eltérő, azaz ( 0, 1 ), ( 1, 0 ), akkor a kijövő eredmény mindig 1 lesz. És amikor a Az A és B operandusok értéke megegyezik, azaz ( 0, 0 ), ( 1, 1 ), a kilépő eredmény mindig 0 lesz.
Hasonlóképpen, ily módon megrajzolhatjuk az igazságtáblázatot Boolean értékek -
Legyen két operandus; az Első az A a második pedig az B . A két operandus által alkotott bemenet összes kombinációja 4 lesz. A következő XOR igazságtáblázat segítségével meghatározzuk a megfelelő kimenetet. Az eredmény C-ben lesz rögzítve, itt C = A ^ B.
Ebben az igazságtáblázatban a bemenetet igazságértékek formájában veszjük fel, azaz igaz (T) és hamis (F). A kimenet igaz értékek, azaz T és F formájában is létrejön.
Itt, a fenti XOR Truth táblázatban azt figyeljük meg, hogy ha az A és B operandusok értéke eltérő, azaz ( F, T ), ( T, F ), az eredmény mindig T lesz. És amikor a Az A és B operandusok értéke megegyezik, azaz ( F, F ), ( T, T ), az eredmény mindig F lesz.
A fenti táblázatokból azt látjuk A T (igaz) jelölése egy, az F (hamis) pedig 0.
Lépések egy adott probléma megoldására -
- A feladatban megadott operandusok mindig decimális értékűek lesznek.
- Először is át kell alakítanunk az operandusok értékeit bináris
- Miután az operandusok értékét bináris számokká konvertálta, tegye egymás fölé mindkét operandust.
- Ne feledje, hogy mielőtt kizárólagos VAGY (XOR) műveletet alkalmazna rajtuk, kérjük, ellenőrizze a számjegyek száma bennük.
- Ha a számjegyek száma nem egyezik, a kis operandus bal végén lévő extra 0-k kiegyenlítik a számjegyek számát.
- Végül a fenti igazságtábla segítségével egyenként alkalmazzuk az XOR műveletet az operandusokon, egyenként bitenként az XOR művelet alkalmazásához.
- Végül az eredmény kimenet formájában jön létre.
- Az előállított kimenet bináris formában lesz, most alakítsa át a bináris formát decimális formává, és jegyezze fel az eredmény értékét.
Bitenkénti exkluzív VAGY (XOR) művelet végrehajtása C++ nyelven
Nézzük meg részletesebben az XOR művelet végrehajtását C++-ban példák segítségével -
1. példa: Keresse meg az egész értékek kizárólagos VAGY értékét; 10 és 14. Magyarázza is el, és írja le a végrehajtási kódot C++ nyelven.
Megoldás: Tekintsünk két változót, 'a' és 'b'-t, amelyek a fenti kérdésben megadott megfelelő két operandust, azaz a 10-et és a 14-et tárolják.
Itt a = 10 és b = 14.
Az alábbi lépéseket követve megtudjuk, hogy az adott két operandus kizárólagos VAGY.
- Tudjuk, hogy a 10 és 14 decimális formában van, és a bitenkénti XOR művelet alkalmazásához bináris alakra kell konvertálni.
- 'a' bináris alak, azaz 10 is '1010' és 'b' bináris alakja, azaz a 14 is „1110”.
- Itt azt látjuk, hogy az a-ban lévő bináris számjegyek száma négy, és a b-ben lévő bináris számjegyek száma szintén 4; így a két változóban lévő bináris számjegyek száma azonos és már kiegyensúlyozott, nem kell több 0-t hozzáadnunk a kiegyenlítéséhez.
- Most a 'b'-ben lévő bináris számjegyeket lerakjuk az 'a'-ban lévő bináris számjegyekre.
- Végül az XOR művelet egyenkénti alkalmazása a megfelelő bitekre illeszkedik, és jegyezze fel a kimenetet.
- A kapott kimenet végül bináris formában lesz, ahogy a fenti kérdés decimális formában adtuk meg, így az eredményt decimális alakra kell konvertálnunk.
Magyarázat:
a = 10 (tizedes formában)
b = 14 (tizedes formában)
Most egy XOR b esetén az a-t és a b-t bináris alakba kell konvertálnunk -
lineáris keresés java-ban
a = 1010 (bináris formában)
b = 1110 ( bináris formában )
Most XOR művelet alkalmazása a és b-re -
a = 1010
b = 1110
----------------
a ^ b = 0100 (Bináris formában)
A ^ b eredménye 0100, ami bináris formában van.
Most konvertálja az eredményt decimális alakra, ami 4.
10^14 = 4
MEGJEGYZÉS: A fenti XOR igazságtábla használatával a megfelelő bitek kimenete jön létre.
Most alkalmazzuk a bitenkénti XOR műveletet 10-en és 14-en C++ nyelven, és megkapjuk az eredményt, azaz a 4-et.
C++ kód a fenti példához:
//************************ 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 } </'>
Kimenet
2. példa: Keresse meg az egész értékek kizárólagos VAGY értékét; 3 és 15. Magyarázza el ezt is, és írja le a végrehajtási kódot C++ nyelven.
Megoldás: Tekintsünk két változót, 'a' és 'b'-t, hogy tároljuk a fenti kérdésben megadott két megfelelő operandust, azaz a 3-at és a 15-öt.
Itt a = 3 és b = 15.
jpa tavasszal
Az alábbi lépéseket követve megtudjuk, hogy az adott két operandus kizárólagos VAGY.
- Tudjuk, hogy a 3 és a 15 decimális formában van, és a bitenkénti XOR művelet alkalmazásához bináris alakra kell konvertálni.
- 'a' bináris alak, azaz a 3 is 'tizenegy' és 'b' bináris alakja, azaz 15 is „1111”.
- Itt megfigyelhetjük, hogy az a-ban lévő bináris számjegyek száma kettő, a b-ben lévő bináris számjegyek száma pedig négy; ezért a két változóban lévő bináris számjegyek száma nem azonos. Így, kiegyensúlyozatlan, több 0-t kell hozzáadnunk az alsó bináris szám bal oldalához, azaz az a-hoz, amely ' tizenegy' , egyensúlyba hozni.
- Kiegyenlítés után a értéke az '0011' , és b „1111”.
- Most a 'b'-ben lévő bináris számjegyeket lerakjuk az 'a'-ban lévő bináris számjegyekre.
- Végül az XOR művelet egyenkénti alkalmazása a megfelelő bitekre illeszkedik, és jegyezze fel a kimenetet.
- A kapott kimenet végül bináris formában lesz, ahogy a fenti kérdés decimális formában adtuk meg, így az eredményt decimális alakra kell konvertálnunk.
Magyarázat:
a = 3 (tizedes formában)
b = 15 (tizedes formában)
Most egy XOR b esetén az a-t és a b-t bináris alakba kell konvertálnunk -
a = 0011 ( bináris formában )
b = 1111 ( bináris formában )
Most XOR művelet alkalmazása a és b-re -
a = 0011
b = 1111
----------------
a ^ b = 1100 (Bináris formában)
A ^ b eredménye 1100, ami bináris formában van.
Most konvertálja az eredményt decimális alakra, ami 12.
3^15 = 12
MEGJEGYZÉS: A fenti XOR igazságtábla használatával a megfelelő bitek kimenete jön létre.
Most alkalmazzuk a bitenkénti XOR műveletet a 3-as és a 15-ös C++ nyelven, és megkapjuk az eredményt, azaz a 12-t.
hogyan szerezhetek iphone hangulatjeleket androidon
C++ kód a fenti példához:
//************************ 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 } </'>
Kimenet