logo

C++ 비트별 XOR 연산자

  • 비트별 XOR 연산자라고도 합니다. 독점 OR
  • 를 사용하여 표시됩니다. '^'
  • 이름에서 알 수 있듯이, 그것은에 작동합니다 비트 레벨 피연산자의
  • 비트별 XOR 연산자는 비트별 연산자 범주에 속합니다.
  • 비트 배타적 OR 연산자(XOR)에는 두 개의 피연산자가 필요하며, 이 두 피연산자는 XOR 기호(예: '^')로 구분됩니다.
  • 두 피연산자에 XOR 연산자를 적용한 후 나오는 출력 또는 결과를 확인하려면 XOR 연산자의 논리 진리표를 따라야 합니다.
  • XOR 진리표는 XOR 연산자의 적절한 논리를 사용하여 구성된 수학적 테이블입니다.
  • XOR 연산자 뒤에 사용되는 논리는 다음과 같습니다. 두 노드에 XOR 연산이 적용될 때마다 다른 두 피연산자의 비트를 사용하면 결과는 항상 생성됩니다. '1', 두 개에 XOR 연산을 적용하면 같은 두 피연산자의 비트로 구성된 결과는 출력을 생성합니다. '0'.

배타적 OR(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입니다.

이 진리표에서는 참(T)과 거짓(F)과 같은 진리 값의 형태로 입력을 받습니다. 출력은 True 값(예: T 및 F)의 형태로도 생성됩니다.

C++ 비트별 XOR 연산자

여기서 위의 XOR 진리표에서 피연산자 A와 B의 값이 다른 경우, 즉 (F, T), (T, F) 결과는 항상 T라는 것을 알 수 있습니다. 피연산자 A와 B의 값이 동일합니다(예: (F, F), (T, T)). 결과는 항상 F입니다.

위의 표에서 우리는 다음을 관찰합니다. T(True)는 1로 표시되고 F(False)는 0으로 표시됩니다.

드롭다운용 자바스크립트

주어진 문제를 해결하기 위한 단계 -

  1. 문제에 주어진 피연산자는 항상 10진수 값입니다.
  2. 먼저 피연산자의 값을 다음으로 변환해야 합니다. 바이너리
  3. 피연산자의 값을 이진수로 변환한 후 두 피연산자를 서로 겹쳐 놓습니다.
  4. 배타적 OR(XOR) 연산을 적용하기 전에 다음 사항을 확인하십시오. 자릿수 그들 안에.
  5. 자릿수 개수가 일치하지 않으면 작은 피연산자의 왼쪽 끝에 있는 추가 0이 자릿수 개수의 균형을 맞춥니다.
  6. 마지막으로 위의 진리표를 사용하여 XOR 연산을 적용하기 위해 한 번에 한 비트씩 피연산자에 XOR 연산을 하나씩 적용합니다.
  7. 드디어 결과물이 아웃풋으로 출력됩니다.
  8. 출력은 이진 형식으로 생성됩니다. 이제 이진 형식을 십진 형식으로 변환하고 결과 값을 기록해 둡니다.

C++에서 비트별 배타적 OR(XOR) 연산 실행

예제를 통해 C++에서 XOR 연산 실행에 대해 더 자세히 이해하겠습니다.

예 1: 정수 값의 배타적 OR 찾기; 10, 14. 그리고 이를 설명하고 C++로 실행코드를 작성하라.

해결책: 위의 질문에 주어진 해당 두 피연산자, 즉 10과 14를 저장하기 위해 두 변수 'a'와 'b'를 고려해 보겠습니다.

여기서 a = 10이고 b = 14입니다.

주어진 두 피연산자의 배타적 OR을 알아내기 위해 아래 단계를 따르겠습니다.

  1. 10과 14는 10진수 형식이라는 것을 알고 있으며, 비트별 XOR 연산을 적용하려면 이를 2진수 형식으로 변환해야 합니다.
  2. 이진 형식 'a', 즉 10은 '1010' 'b'의 이진 형식, 즉 14는 '1110'.
  3. 여기서 우리는 a에 존재하는 이진수의 개수가 4이고 b에 존재하는 이진수의 개수도 4임을 관찰합니다. 따라서 두 변수에 존재하는 이진수의 개수는 동일하고 이미 균형이 잡혀 있으므로 균형을 맞추기 위해 0을 더 추가할 필요가 없습니다.
  4. 이제 'b'에 있는 이진수를 'a'에 있는 이진수로 내려 놓습니다.
  5. 마지막으로 해당 비트 일치에 하나씩 XOR 연산을 적용하고 출력을 기록해 둡니다.
  6. 최종적으로 생성되는 출력은 위의 질문에서 십진수 형식으로 주어진 것처럼 이진수 형태이므로 결과를 십진수 형식으로 변환해야 합니다.

설명:

a = 10 (10진수 형식)

Kat timpf는 변호사인가요?

b = 14 (10진수 형태)

이제 XOR b의 경우 a와 b를 이진 형식으로 변환해야 합니다.

a = 1010 (바이너리 형식)

b = 1110 (바이너리 형식)

이제 a와 b에 XOR 연산을 적용합니다.

a = 1010

b = 1110

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

a ^ b = 0100 (바이너리 형식)

a ^b의 결과는 0100이며 이는 이진 형식입니다.

정렬된 튜플 파이썬

이제 결과를 10진수 형식인 4로 변환합니다.

10^14 = 4

참고: 위의 XOR 진리표를 사용하면 해당 비트의 출력이 생성됩니다.

이제 C++ 언어로 10과 14에 비트별 XOR 연산을 적용하여 결과(예: 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: 정수 값의 배타적 OR 찾기; 3, 15. 그리고 이를 설명하고 C++로 실행코드를 작성하라.

해결책: 위의 질문에 주어진 해당 두 피연산자, 즉 3과 15를 저장하기 위해 두 변수 'a'와 'b'를 고려해 보겠습니다.

여기서 a = 3이고 b = 15입니다.

주어진 두 피연산자의 배타적 OR을 알아내기 위해 아래 단계를 따르겠습니다.

  1. 3과 15는 10진수 형태인 것을 알고 있으며, 비트별 XOR 연산을 적용하려면 이를 2진수 형태로 변환해야 합니다.
  2. 이진 형식 'a', 즉 3은 '열하나' 'b'의 이진 형식, 즉 15는 '1111'.
  3. 여기서 우리는 a에 존재하는 이진수의 개수가 2이고 b에 존재하는 이진수의 개수가 4라는 것을 관찰할 것입니다. 따라서 두 변수에 존재하는 이진수의 개수는 동일하지 않습니다. 따라서 불균형에서는 낮은 이진수 왼쪽에 0을 더 많이 추가해야 합니다. 즉, 'a'입니다. 열하나' , 균형을 맞추기 위해.
  4. 균형을 맞춘 후 a의 값은 다음과 같습니다. '0011' , 그리고 b는 '1111'.
  5. 이제 'b'에 있는 이진수를 'a'에 있는 이진수로 내려 놓습니다.
  6. 마지막으로 해당 비트 일치에 하나씩 XOR 연산을 적용하고 출력을 기록해 둡니다.
  7. 최종적으로 생성되는 출력은 위의 질문에서 십진수 형식으로 주어진 것처럼 이진수 형태이므로 결과를 십진수 형식으로 변환해야 합니다.

설명:

a = 3 (10진수 형식)

b = 15 (10진수 형태)

이제 XOR b의 경우 a와 b를 이진 형식으로 변환해야 합니다.

arp-a 명령

a = 0011 (바이너리 형식)

Arduino의 전송 속도

b = 1111 (바이너리 형식)

이제 a와 b에 XOR 연산을 적용합니다.

a = 0011

b = 1111

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

a ^ b = 1100 (바이너리 형식)

a ^b의 결과는 1100이며 이는 이진 형식입니다.

이제 결과를 12진수 형식으로 변환합니다.

3^15 = 12

참고: 위의 XOR 진리표를 사용하면 해당 비트의 출력이 생성됩니다.

이제 C++ 언어로 3과 15에 비트별 XOR 연산을 적용하여 결과(예: 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 연산자