C의 논리 XOR 연산자

Waqar Aslam 2023년10월12일
  1. C의 XOR(^) 연산자 개요
  2. ^를 사용하여 C 프로그래밍 언어에서 XOR 적용
  3. C 프로그래밍 언어에서 XOR 적용
C의 논리 XOR 연산자

이 기사에서는 C 프로그래밍 언어의 논리 XOR(^) 연산자에 대해 알아봅니다.

C의 XOR(^) 연산자 개요

XOR이라고도 하는 ‘배타적 OR’은 피연산자 중 하나가 참(하나는 참이고 다른 하나는 거짓)일 때 ‘참’ 결과를 반환하지만 둘 다 참이거나 둘 다 참일 때는 반환하지 않는 논리 연산자입니다. 거짓. 두 피연산자가 모두 true인 경우 논리 조건 생성에 기본 ‘or’를 사용하면 혼란이 생길 수 있습니다.

그러한 상황에서 정확히 기준을 충족하는 것이 무엇인지 이해하기 어렵기 때문입니다. 이 문제는 또는이라는 단어에 독점적 한정자를 추가하여 해결되었으며, 이는 의미도 명확히 합니다.

^를 사용하여 C 프로그래밍 언어에서 XOR 적용

비트별 XOR이라고도 하는 ^ 연산자는 두 개의 정수를 피연산자로 사용하고 두 숫자의 모든 비트에 대해 XOR을 수행합니다.

두 비트가 다른 경우 XOR 연산은 1 값을 제공합니다. 비트가 동일하면 0. 값을 반환합니다.

C에서 비트별 XOR을 적용하는 예를 들어 보겠습니다. 먼저 라이브러리를 가져오고 main() 함수를 만듭니다.

#include <stdio.h>
int main() {}

기본 함수 내에서 int 데이터 유형으로 firstValuesecondValue라는 두 개의 변수를 설정하고 각각에 대해 정수 값을 설정합니다. 이진 형식에서 firstValue0101,과 같고 secondValue1001과 같습니다.

int firstValue = 5;
int secondValue = 9;

이제 이 두 변수가 있으므로 여기에 XOR을 적용해야 하므로 applyXOR이라는 새 변수를 만들고 이 두 변수에 ^ 기호를 사용하겠습니다.

int applyXOR = firstValue ^ secondValue;

위 식에서 XOR 연산은 다음과 같이 두 이진 값 모두에 대해 수행됩니다.

firstValue secondValue firstValue ^ secondValue
0 1 1
1 0 1
0 0 0
1 1 0

이제 우리는 이진 형식으로 숫자 1100을 얻습니다. 십진수로 변환하면 값 12와 동일합니다. 그런 다음 얻은 값을 인쇄합니다.

printf("The value obtained after applying XOR is: %d", applyXOR);

C 프로그래밍 언어에서 XOR 적용

코드 예:

#include <stdio.h>
int main() {
  int firstValue = 5;
  int secondValue = 9;
  int applyXOR = firstValue ^ secondValue;

  printf("The value obtained after applying XOR is: %d", applyXOR);

  return 0;
}

출력:

The value obtained after applying XOR is: 12

XOR(^) 연산자의 작동을 보여주기 위해 또 다른 예를 들어 보겠습니다.

모든 항목이 하나의 숫자를 제외하고 짝수 번 발생하는 숫자 모음이 주어지면 홀수 발생하는 숫자를 찾으십시오. XOR(^) 연산자를 각 정수에 간단히 적용하여 이 문제를 해결하는 것이 효과적인 방법입니다.

코드 예:

#include <stdio.h>
int getOddOccurringNumber(int arr[], int number) {
  int value = 0, i;
  for (i = 0; i < number; i++) value ^= arr[i];
  return value;
}

int main(void) {
  int array[] = {12, 12, 14, 90, 14, 16, 16};
  int sizeNumber = sizeof(array) / sizeof(array[0]);
  printf("The value that occurred odd times in the list is: %d ",
         getOddOccurringNumber(array, sizeNumber));
  return 0;
}

출력:

The value that occurred odd times in the list is: 90
작가: Waqar Aslam
Waqar Aslam avatar Waqar Aslam avatar

I am Waqar having 5+ years of software engineering experience. I have been in the industry as a javascript web and mobile developer for 3 years working with multiple frameworks such as nodejs, react js, react native, Ionic, and angular js. After which I Switched to flutter mobile development. I have 2 years of experience building android and ios apps with flutter. For the backend, I have experience with rest APIs, Aws, and firebase. I have also written articles related to problem-solving and best practices in C, C++, Javascript, C#, and power shell.

LinkedIn

관련 문장 - C Operator