logo

C++ побитов XOR оператор

  • Побитовият XOR оператор е известен също като Изключително ИЛИ
  • Означава се с помощта на '^'
  • Както показва името, той работи на битово ниво на операндите.
  • Побитовият XOR оператор попада в категорията на побитовите оператори.
  • В побитово изключителния оператор ИЛИ (XOR) са необходими два операнда и тези два операнда са разделени от символа XOR, т.е. '^'.
  • За да определим изхода или резултата, който излиза след прилагане на оператора XOR върху два операнда, трябва да следваме таблицата на логическата истина на оператора XOR.
  • XOR Truth Table е математическата таблица, конструирана с помощта на правилната логика на оператора XOR.
  • Логиката, използвана зад оператора XOR е; всеки път, когато операцията XOR се прилага към двете различен битове от два операнда, тогава резултатът винаги ще се получава '1', и ако операцията XOR се приложи върху двете един и същ битове от два операнда, тогава резултатът произвежда изход '0'.

Таблица на истинността на оператора Изключително ИЛИ (XOR).

Нека има два операнда; първият е A, а вторият е B, общите комбинации от входни данни, образувани от тези два операнда, ще бъдат 4. Като използваме следната XOR таблица на истината, ще определим съответния изход. Резултатът ще бъде записан в C тук C = A ^ B.

В тази таблица на истината ние приемаме входни данни под формата на битове, т.е. 0 и 1, и изходът също ще бъде генериран под формата на битове, т.е. 0 и 1.

C++ побитов XOR оператор

Тук, в горната таблица на истината XOR, наблюдаваме, че когато стойностите на операндите A и B са различни, т.е. (0, 1), (1, 0), резултатът, който излиза, винаги ще бъде 1. И когато стойностите на операндите A и B са еднакви, т.е. (0, 0), (1, 1), резултатът, който излиза, винаги ще бъде 0.

По същия начин, по този начин можем да начертаем таблицата на истината за Булева стойност стойности -

Нека има два операнда; първият е А а вторият е б . Общите комбинации от входни данни, образувани от тези два операнда, ще бъдат 4. Като използваме следната XOR таблица на истината, ще определим съответния изход. Резултатът ще бъде записан в C, тук C = A ^ B.

В тази таблица на истината ние приемаме входни данни под формата на стойности Truth, т.е. True (T) и False (F). Резултатът също ще бъде генериран под формата на истински стойности, т.е. T и F.

C++ побитов XOR оператор

Тук, в горната таблица на истината XOR, наблюдаваме, че когато стойностите на операндите A и B са различни, т.е. (F, T), (T, F), резултатът винаги ще бъде T. И когато стойностите на операндите A и B са еднакви, т.е. (F, F), (T, T), резултатът винаги ще бъде F.

От горните таблици виждаме това T (True) се обозначава с единица, а F (False) се обозначава с 0.

Стъпки за решаване на даден проблем -

  1. Операндите, дадени в задачата, винаги ще бъдат в десетична стойност.
  2. Първо, трябва да преобразуваме стойностите на операндите в двоичен
  3. След като преобразувате стойностите на операндите в двоични числа, поставете двата операнда един върху друг.
  4. Не забравяйте, че преди да приложите изключителна операция ИЛИ (XOR) върху тях, любезно проверете брой цифри в тях.
  5. Ако броят на цифрите не съвпада, допълнителните 0 в левия край на малкия операнд балансират броя на цифрите.
  6. Накрая, с помощта на горната таблица на истината, приложете операцията XOR върху операндите един по един, като вземете бит по бит за прилагане на операцията XOR.
  7. Накрая резултатът се произвежда под формата на изход.
  8. Полученият резултат ще бъде в двоична форма, сега преобразувайте двоичната форма в десетична форма и запишете стойността на резултата.

Изпълнение на побитово изключително ИЛИ (XOR) операция в C++

Нека разберем по-подробно за изпълнението на операцията XOR в C++ с помощта на примери -

Пример 1: Намерете изключителното ИЛИ на цели числа; 10 и 14. Освен това го обяснете и напишете кода за изпълнение на C++.

Решение: Нека разгледаме две променливи, 'a' и 'b', за да съхраним съответните два операнда, дадени в горния въпрос, т.е. 10 и 14.

Тук a = 10 и b = 14.

набор срещу карта

Ще следваме стъпките по-долу, за да открием изключителното ИЛИ на дадените два операнда.

  1. Знаем, че 10 и 14 са в десетична форма и за прилагане на побитова операция XOR е необходимо да се преобразува в двоична форма.
  2. Двоична форма 'a', т.е. 10 е '1010' и двоична форма на 'b', т.е. 14 е „1110“.
  3. Тук наблюдаваме, че броят на двоичните цифри в a е четири и броят на двоичните цифри в b също е 4; следователно броят на двоичните цифри, присъстващи в двете променливи, е еднакъв и вече балансиран, не е необходимо да добавяме повече нули, за да го балансираме.
  4. Сега поставяме двоичните цифри, присъстващи в 'b', до двоичните цифри, присъстващи в 'a'.
  5. И накрая, прилагането на операцията XOR един по един върху съответните битове съвпада и запишете изхода.
  6. Генерираният най-накрая резултат ще бъде в двоична форма, тъй като горният въпрос е даден в десетична форма, така че трябва да преобразуваме резултата в десетична форма.

Обяснение:

a = 10 (в десетична форма)

b = 14 (в десетична форма)

Сега, за XOR b, трябва да преобразуваме a и b в двоична форма -

a = 1010 (в двоична форма)

b = 1110 (в двоична форма)

Сега, прилагайки операция XOR върху a и b -

а = 1010

b = 1110

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

a ^ b = 0100 (В двоична форма)

Резултатът от a ^ b е 0100, което е в двоична форма.

Сега преобразувайте резултата в десетична форма, която е 4.

10^14 = 4

ЗАБЕЛЕЖКА: С помощта на горната таблица на истината XOR се генерират изходни данни от съответните битове.

Сега ще приложим побитовата операция XOR върху 10 и 14 на езика C++ и ще получим резултата, т.е. 4.

C++ код за горния пример:

 //************************ 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 } </'>

Изход

C++ побитов XOR оператор

Пример 2: Намерете изключителното ИЛИ на целочислени стойности; 3 и 15. Освен това го обяснете и напишете кода за изпълнение на C++.

Решение: Нека разгледаме две променливи, 'a' и 'b', за да съхраним съответните два операнда, дадени в горния въпрос, т.е. 3 и 15.

Тук a = 3 и b = 15.

Ще следваме стъпките по-долу, за да открием изключителното ИЛИ на дадените два операнда.

  1. Знаем, че 3 и 15 са в десетична форма и за прилагане на побитова операция XOR е необходимо да се преобразува в двоична форма.
  2. Двоичната форма 'a', т.е. 3 е 'единадесет' и двоична форма на 'b', т.е. 15 е „1111“.
  3. Тук ще забележим, че броят на двоичните цифри в a е две, а броят на двоичните цифри в b е четири; следователно броят на двоичните цифри, присъстващи в двете променливи, не е еднакъв. По този начин, небалансирани, трябва да добавим повече нули от лявата страна на долното двоично число, т.е. a, което е ' единадесет' , за да го балансирате.
  4. След балансиране стойността на a е '0011' , и b е „1111“.
  5. Сега поставяме двоичните цифри, присъстващи в 'b', до двоичните цифри, присъстващи в 'a'.
  6. И накрая, прилагането на операцията XOR един по един върху съответните битове съвпада и запишете изхода.
  7. Генерираният най-накрая резултат ще бъде в двоична форма, тъй като горният въпрос е даден в десетична форма, така че трябва да преобразуваме резултата в десетична форма.

Обяснение:

a = 3 (в десетична форма)

b = 15 (в десетична форма)

Сега, за XOR b, трябва да преобразуваме a и b в двоична форма -

a = 0011 (в двоична форма)

b = 1111 (в двоична форма)

Сега, прилагайки операция XOR върху a и b -

а = 0011

b = 1111

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

a ^ b = 1100 (В двоична форма)

Резултатът от a ^ b е 1100, което е в двоична форма.

Сега преобразувайте резултата в десетична форма, която е 12.

3^15 = 12

ЗАБЕЛЕЖКА: С помощта на горната таблица на истината XOR се генерират изходни данни от съответните битове.

Сега ще приложим побитовата операция XOR върху 3 и 15 на езика C++ и ще получим резултата, т.е. 12.

C++ код за горния пример:

 //************************ 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 } </'>

Изход

C++ побитов XOR оператор