IRONSOFTWAREHOME

C#의 이진 XOR 연산자 이해하기

C#의 이진수: 10분 안에 배우는 이진수 XOR 연산자

Tim Corey

5분 54초

이진 연산은 프로그래밍에서 매우 중요한 부분이며, 특히 저수준 최적화 및 비트 연산을 다룰 때 더욱 그렇습니다. 그러한 연산 중 하나가 배타적 논리합(XOR) 연산자입니다. 이 글에서는 Tim Corey의 동영상 " 10분 안에 배우는 이진 XOR 연산자"를 따라가며 C#의 이진 XOR 연산자를 살펴보겠습니다.

팀의 영상은 XOR 연산, 그 구문 및 실제 응용에 대한 훌륭한 설명입니다. 아래에서는 그의 설명과 예시를 분석하고, 쉽게 참조할 수 있도록 특정 시점을 표시하겠습니다.

XOR 소개

Tim은 영상 시작 부분에서 이 영상이 C#에서 이진법 이해하기 시리즈의 9번째 강의라고 언급합니다. 그는 이번 강의에서 배타적 논리합(XOR) 연산자의 작동 방식과 다양한 상황에서 어떻게 유용하게 사용될 수 있는지 설명하며 강의의 배경을 제시합니다.

XOR 연산자 구문 및 기본 설명

Tim은 1과 2라는 두 값을 입력하고 참조용으로 콘솔에 출력합니다. 그는 표준 8비트 이진 표현에 초점을 맞추기 위해 32비트 표현을 제거합니다.

0:31에 그는 C#에서 XOR 연산이 캐럿 기호(^)로 표현된다고 설명합니다. 그는 시청자들에게 다음과 같이 상기시킵니다.

  • AND 연산자(&)는 두 비트 모두 1이어야 1을 반환합니다.
  • OR 연산자(|)는 비트 중 하나라도 1이면 1을 반환합니다.
  • XOR 연산자(^)는 두 비트 중 하나만 1일 경우에만 1을 반환합니다.

팀은 각 비트 비교에 대한 규칙을 더 자세히 설명합니다.

  • 1 XOR 0 = 1
  • 0 XOR 1 = 1
  • 1 XOR 1 = 0
  • 0 XOR 0 = 0

즉, XOR 연산은 두 값 사이의 차이를 감지하는 역할을 합니다.

C# 코드에서 XOR 시연

Tim은 uint 변수를 정의하여 두 값을 XOR 연산한 결과를 저장하는 실전 예제로 이동합니다:

// Define two sample values
uint val1 = 0b0001;  // 1 in decimal
uint val2 = 0b0010;  // 2 in decimal

// Perform XOR operation between val1 and val2
uint result = val1 ^ val2;

// Print the resultant binary value of XOR operation
Console.WriteLine(Convert.ToString(result, toBase: 2).PadLeft(8, '0'));

그는 결과를 콘솔에 출력하고 출력 내용을 기록합니다.

0000 0011
Text

이 출력 결과는 XOR 연산이 원래 값 중 하나만 1인 경우의 비트만 보존하고, 둘 다 1인 경우는 보존하지 않는다는 것을 보여줍니다.

값 비교를 위한 XOR 연산 사용

팀은 이제 XOR 연산의 실용적인 활용법 한 가지를 보여줍니다. 바로 두 값이 동일한지 확인하는 것입니다.

3:00에 그는 val1val2를 정확히 동일하게 만들도록 값을 수정합니다:

// Initialize val1 and val2 to the same value
uint val1 = 0b10011001;
uint val2 = 0b10011001;

// Perform XOR operation to check for identical values
uint result = val1 ^ val2;

// Output will be zero if both values are identical
Console.WriteLine(Convert.ToString(result, toBase: 2).PadLeft(8, '0'));

그가 XOR 연산을 수행하면 결과는 다음과 같습니다.

0000 0000
Text

팀은 XOR 결과가 0이면 두 값이 동일하다는 의미라고 설명합니다. 따라서 XOR 연산은 두 숫자가 같은지 비교하는 빠른 방법입니다.

차이점 식별을 위한 XOR 연산

4:00에 Tim은 val1val2 사이에 약간의 차이가 있는 또 다른 사례를 보여줍니다. 이번에는 XOR 연산 결과가 0이 아니므로 두 값 사이에 차이가 있음을 나타냅니다.

이 접근 방식은 XOR 연산을 통해 단 한 단계만으로 차이점을 명확히 구분할 수 있기 때문에 대규모 이진 값을 효율적으로 비교할 때 유용합니다.

임시 변수 없이 두 변수를 교환하는 XOR 연산

팀은 임시 변수를 사용하지 않고 두 숫자를 바꾸는 고전적인 프로그래밍 기법을 소개합니다.

5:40에 그는 여분의 변수를 선언하지 않고 val1val2를 교환하도록 시청자에게 도전합니다. 이 해결책은 XOR 연산을 세 번 사용합니다.

// Original values
uint val1 = 0b0010; // 2 in decimal
uint val2 = 0b0100; // 4 in decimal

// Swap the values using XOR
val1 = val1 ^ val2;
val2 = val1 ^ val2;
val1 = val1 ^ val2;

// After swap: val1 = 4, val2 = 2
Console.WriteLine($"val1: {val1}, val2: {val2}");

그는 그 과정을 단계별로 설명합니다.

  1. val1val1 ^ val2를 저장하고 있어 이제 두 값의 혼합을 갖고 있습니다.
  2. val2val1와 다시 XOR 연산되어 원래의 val1 값만 남습니다.
  3. val1은 다시 XOR 연산되어 원래의 val2 값만 남습니다.

7:30에 Tim은 교환된 값을 출력하고 val1val2가 값 교환에 성공했음을 확인합니다.

이진 표현에서 XOR 이해하기

이해를 돕기 위해 Tim은 스와핑 연산의 이진 버전을 실행하여 각 XOR 단계가 비트에 어떤 영향을 미치는지 보여줍니다. 그는 각 비트가 필요할 때만 반전되므로 XOR 연산이 값을 교환하는 효율적인 방법이라고 강조합니다.

결론

팀은 핵심 요점을 다시 한번 강조하며 마무리합니다.

  • XOR 연산은 정확히 하나의 비트가 1일 때만 1을 반환합니다.
  • 값을 효율적으로 비교하는 데 사용할 수 있습니다.
  • 이 기능은 세 번째 변수 없이 두 값을 교환하는 데 도움이 되므로 코딩 문제에서 유용한 팁입니다.

그는 시청자들이 XOR 연산을 직접 실험해보고 실제 문제에 적용하여 더 깊이 이해하도록 권장합니다.

마지막으로

팀 코리의 영상은 C#에서 XOR 연산에 대한 훌륭하고 간결한 설명을 제공합니다. 그는 단계별 예시를 통해 연산자가 비교, 차이점 비교, 심지어 값 교환에도 유용하게 사용될 수 있음을 보여줍니다.

이진 연산이나 비트 연산에 관심이 있다면, C# 이진 조작에 대한 이해를 높이는 데 꼭 필요한 영상 입니다.

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

OR
bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.