logo

Bitowy operator XOR w języku C++

  • Bitowy operator XOR jest również znany jako Ekskluzywne LUB
  • Oznacza się to za pomocą „^”
  • Jak sama nazwa wskazuje, działa na poziom bitowy operandów.
  • Bitowy operator XOR należy do kategorii operatorów bitowych.
  • W bitowym wyłącznym operatorze OR (XOR) wymagane są dwa operandy, które są oddzielone symbolem XOR, tj. „^”.
  • Aby określić wynik lub wynik, który pojawi się po zastosowaniu operatora XOR na dwóch operandach, musimy postępować zgodnie z tabelą prawdy logicznej operatora XOR.
  • Tabela prawdy XOR to tablica matematyczna zbudowana przy użyciu właściwej logiki operatora XOR.
  • Logika zastosowana za operatorem XOR jest następująca: za każdym razem, gdy na obu przypadkach zostanie zastosowana operacja XOR różny bitów dwóch operandów, wówczas wynik będzie zawsze generowany „1”, i jeśli operacja XOR zostanie zastosowana na obu To samo bitów dwóch operandów, wówczas wynik generuje wynik „0”.

Tabela prawdy wyłącznego operatora OR (XOR).

Niech będą dwa operandy; pierwszy to A, a drugi to B, całkowita kombinacja danych wejściowych utworzonych przez te dwa operandy wyniesie 4. Korzystając z poniższej tabeli prawdy XOR, określimy odpowiedni wynik. Wynik zostanie zapisany w języku C tutaj C = ZA ^ B.

W tej tabeli prawdy dane wejściowe pobieramy w postaci bitów, tj. 0 i 1, a dane wyjściowe będą również generowane w postaci bitów, tj. 0 i 1.

Bitowy operator XOR w języku C++

Tutaj, w powyższej tabeli XOR Truth, obserwujemy, że gdy wartości argumentów A i B są różne, tj. ( 0, 1 ), ( 1, 0 ), wynik zawsze będzie wynosić 1. A kiedy wartości argumentów A i B są takie same, tj. ( 0, 0 ), ( 1, 1 ), wynik zawsze będzie wynosić 0.

Podobnie w ten sposób możemy narysować tablicę prawdy dla Wartość logiczna wartości -

Niech będą dwa operandy; pierwszy jest A i drugie jest B . Całkowita liczba kombinacji danych wejściowych utworzonych przez te dwa operandy wyniesie 4. Korzystając z poniższej tabeli prawdy XOR, określimy odpowiednie dane wyjściowe. Wynik zostanie zapisany w C, tutaj C = A ^ B.

W tej tabeli prawdy dane wejściowe przyjmujemy w postaci wartości prawdy, tj. prawdy ( T ) i fałszu ( F ). Dane wyjściowe będą również generowane w postaci wartości True, tj. T i F.

Bitowy operator XOR w języku C++

Tutaj, w powyższej tabeli XOR Truth, obserwujemy, że gdy wartości argumentów A i B są różne, tj. ( F, T ), ( T, F ), wynikiem zawsze będzie T. A kiedy wartości argumentów A i B są takie same, tj. ( F, F ), ( T, T ), wynikiem zawsze będzie F.

Z powyższych tabel wynika, że T (Prawda) jest oznaczona przez jeden, a F (Fałsz) jest oznaczona przez 0.

Kroki, aby rozwiązać dowolny problem -

  1. Operandy podane w zadaniu będą zawsze miały wartość dziesiętną.
  2. Najpierw musimy przekonwertować wartości operandów na dwójkowy
  3. Po przekształceniu wartości operandów na liczby binarne należy umieścić oba operandy jeden nad drugim.
  4. Pamiętaj, że zanim zastosujesz na nich wyłączną operację OR (XOR), sprawdź ilość cyfr w nich.
  5. Jeśli liczba cyfr nie jest zgodna, dodatkowe zera na lewym końcu małego operandu równoważą liczbę cyfr.
  6. Na koniec, korzystając z powyższej tabeli prawdy, zastosuj operację XOR na operandach jeden po drugim, stosując operację XOR po jednym bicie na raz.
  7. Na koniec wynik jest generowany w postaci danych wyjściowych.
  8. Wynik będzie miał postać binarną. Teraz przekonwertuj postać binarną na postać dziesiętną i zanotuj wartość wyniku.

Wykonanie operacji Bitwise Exclusive OR (XOR) w C++

Przyjrzyjmy się bardziej szczegółowo wykonaniu operacji XOR w C++ za pomocą przykładów -

Przykład 1: Znajdź wyłączny OR wartości całkowitych; 10 i 14. Wyjaśnij to także i napisz kod wykonania w C++.

Rozwiązanie: Rozważmy dwie zmienne „a” i „b” do przechowywania odpowiednich dwóch argumentów podanych w powyższym pytaniu, tj. 10 i 14.

Tutaj a = 10 i b = 14.

Wykonamy poniższe kroki, aby znaleźć wyłączne OR danych dwóch operandów.

kolory Javy
  1. Wiemy, że 10 i 14 są w postaci dziesiętnej i aby zastosować bitową operację XOR, konieczne jest przekonwertowanie ich na postać binarną.
  2. Forma binarna „a”, tj. 10 to „1010” oraz Binarna forma „b”, tj. 14 to „1110”.
  3. Tutaj zauważamy, że liczba cyfr binarnych występujących w a wynosi cztery, a liczba cyfr binarnych występujących w b również wynosi 4; stąd liczba cyfr binarnych obecnych w obu zmiennych jest taka sama i już zbilansowana, nie musimy dodawać większej liczby zer, aby to zrównoważyć.
  4. Teraz sprowadź cyfry binarne obecne w „b” do cyfr binarnych występujących w „a”.
  5. Na koniec, stosując operację XOR jeden po drugim na odpowiednich bitach, dopasowuj i zanotuj wynik.
  6. Wygenerowany wynik będzie ostatecznie w formie binarnej, tak jak powyższe pytanie podano w postaci dziesiętnej, dlatego musimy przekonwertować wynik na postać dziesiętną.

Wyjaśnienie:

a = 10 (w formie dziesiętnej)

b = 14 (w formie dziesiętnej)

jak zmienić ciąg na int

Teraz dla XOR b musimy przekonwertować aib na postać binarną -

a = 1010 (w formie binarnej)

b = 1110 (w formie binarnej)

Teraz, stosując operację XOR na aib -

a = 1010

b = 1110

---------------

a ^ b = 0100 (W formie binarnej)

Wynikiem a ^ b jest 0100, który jest w postaci binarnej.

Teraz konwertujemy wynik do postaci dziesiętnej, czyli 4.

10^14 = 4

UWAGA: Korzystając z powyższej tabeli prawdy XOR, generowane są dane wyjściowe odpowiednich bitów.

Zastosujemy teraz bitową operację XOR na liczbach 10 i 14 w języku C++ i otrzymamy wynik, czyli 4.

Kod C++ dla powyższego przykładu:

 //************************ 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 &lt;&gt; b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout &lt;&lt; &apos;Applying XOR operation on a and b: &apos;&lt;&lt; endl ; cout &lt;&lt; &apos;a ^ b = &apos; &lt;&lt; c &lt;&lt; endl ; // Printing the output } </'>

Wyjście

Bitowy operator XOR w języku C++

Przykład 2: Znajdź wyłączny OR wartości całkowitych; 3 i 15. Wyjaśnij to także i napisz kod wykonania w C++.

Rozwiązanie: Rozważmy dwie zmienne „a” i „b” do przechowywania odpowiednich dwóch operandów podanych w powyższym pytaniu, tj. 3 i 15.

Tutaj a = 3 i b = 15.

silnia Java

Wykonamy poniższe kroki, aby znaleźć wyłączne OR danych dwóch operandów.

  1. Wiemy, że liczby 3 i 15 są w postaci dziesiętnej i aby zastosować bitową operację XOR, należy je przekonwertować do postaci binarnej.
  2. Forma binarna „a”, tj. 3 to 'jedenaście' oraz Binarna forma „b”, tj. 15 to „1111”.
  3. Tutaj zaobserwujemy, że liczba cyfr binarnych występujących w a wynosi dwa, a liczba cyfr binarnych występujących w b wynosi cztery; stąd liczba cyfr binarnych występujących w obu zmiennych nie jest taka sama. Zatem w przypadku niezrównoważenia musimy dodać więcej zer po lewej stronie dolnej liczby binarnej, tj. a, czyli „ jedenaście' , żeby to zrównoważyć.
  4. Po zbilansowaniu wartość a wynosi „0011” i b jest „1111”.
  5. Teraz sprowadź cyfry binarne obecne w „b” do cyfr binarnych występujących w „a”.
  6. Na koniec, stosując operację XOR jeden po drugim na odpowiednich bitach, dopasowuj i zanotuj wynik.
  7. Wygenerowany wynik będzie ostatecznie w formie binarnej, tak jak powyższe pytanie podano w postaci dziesiętnej, dlatego musimy przekonwertować wynik na postać dziesiętną.

Wyjaśnienie:

a = 3 (w formie dziesiętnej)

b = 15 (w formie dziesiętnej)

Teraz dla XOR b musimy przekonwertować aib na postać binarną -

a = 0011 (w formie binarnej)

b = 1111 (w formie binarnej)

Teraz, stosując operację XOR na aib -

polecenie arp-a

a = 0011

b = 1111

---------------

a ^ b = 1100 (W formie binarnej)

Wynikiem a ^ b jest 1100, co jest w postaci binarnej.

Teraz konwertujemy wynik do postaci dziesiętnej, czyli 12.

3^15 = 12

UWAGA: Korzystając z powyższej tabeli prawdy XOR, generowane są dane wyjściowe odpowiednich bitów.

Zastosujemy teraz bitową operację XOR na liczbach 3 i 15 w języku C++ i otrzymamy wynik, czyli 12.

Kod C++ dla powyższego przykładu:

 //************************ 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 &lt;&gt; b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout &lt;&lt; &apos;Applying XOR operation on a and b: &apos;&lt;&lt; endl ; cout &lt;&lt; &apos;a ^ b = &apos; &lt;&lt; c &lt;&lt; endl ; // Printing the output } </'>

Wyjście

Bitowy operator XOR w języku C++