비트 XOR 계산기란?
비트 XOR(배타적 논리합) 계산기는 두 정수를 받아 비트 단위로 결합합니다. 각 자릿수에서 두 입력 비트가 서로 다르면 결과 비트는 1이 되고, 두 비트가 같으면 0이 됩니다. XOR은 프로그래밍, 디지털 논리 회로, 암호학, 오류 검출에서 쓰이는 가장 기본적인 연산 중 하나입니다.
사용 방법
첫 번째 정수(A)와 두 번째 정수(B)를 입력한 뒤 실행 버튼을 누르세요. 계산기는 XOR 결과를 10진수로 보여주고, 비트 단위로 직접 확인할 수 있도록 2진수와 16진수 표현도 함께 제공합니다. 양의 정수와 음의 정수 모두 입력할 수 있습니다.
공식 설명
XOR은 대부분의 프로그래밍 언어에서 A ^ B로, 수학 표기법에서는 A ⊕ B로 표기합니다.
한 비트에 대한 진리표는 다음과 같습니다: \(0\oplus0=0\), \(0\oplus1=1\), \(1\oplus0=1\), \(1\oplus1=0\). 이 연산은 모든 비트 쌍에 독립적으로 적용됩니다. 유용한 성질로 A ^ A = 0과 A ^ 0 = A가 있는데, 바로 이 때문에 XOR이 값 교환(swap)이나 플래그 토글에 활용됩니다.
예제로 풀어보기
A = 12, B = 10이라고 해봅시다. 2진수로 나타내면 12 = 1100, 10 = 1010입니다. 각 자릿수를 비교하면 \(1\oplus1=0\), \(1\oplus0=1\), \(0\oplus1=1\), \(0\oplus0=0\) 이 되어 0110 = 6 입니다. 따라서
입니다.
비트 연산 비교
모든 비트 연산은 한 번에 한 비트씩 작동합니다. 입력 비트 \(A\)와 \(B\)의 각 쌍에 대해 연산은 단일 출력 비트를 생성합니다. 아래 표는 가장 일반적인 6가지 연산의 완전한 단일 비트 진리표를 보여줍니다. XOR(배타적 OR, \(A \oplus B\)로 표기)은 두 입력 비트가 다를 때만 1을 출력합니다.
| A | B | AND (A&B) | OR (A|B) | XOR (A^B) | NAND ~(A&B) | NOR ~(A|B) | XNOR ~(A^B) |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
XOR은 XNOR의 정확한 여집합이며, XOR은 입력이 일치하지 않는 정확히 두 행에서 1과 같습니다. 이 "차이 감지" 특성이 XOR을 패리티 검사, 단순 암호화 및 비트 토글에 유용하게 만드는 것입니다.
공통 입력 쌍에 대한 XOR
다음 표는 비트 XOR 연산을 통해 여러 대표적인 쌍을 처리하며, 각 피연산자를 이진법으로 표시한 다음 결과를 십진법, 이진법 및 십육진법으로 표시합니다. XOR은 비트별로 수행됩니다: 두 이진 수를 정렬하고 비트가 다른 모든 위치에서 1을 출력합니다.
| A | B | A (이진법) | B (이진법) | A ^ B (십진법) | A ^ B (이진법) | A ^ B (십육진법) |
|---|---|---|---|---|---|---|
| 5 | 3 | 0101 | 0011 | 6 | 0110 | 0x6 |
| 255 | 15 | 11111111 | 00001111 | 240 | 11110000 | 0xF0 |
| 12 | 12 | 1100 | 1100 | 0 | 0000 | 0x0 |
| 7 | 0 | 0111 | 0000 | 7 | 0111 | 0x7 |
| 10 | 6 | 1010 | 0110 | 12 | 1100 | 0xC |
| -1 | 1 | …11111111 | …00000001 | -2 | …11111110 | 0x…FE |
두 가지 패턴이 두드러집니다. 피연산자가 0일 때, XOR은 다른 피연산자를 변경하지 않고 반환합니다(\(7 \oplus 0 = 7\)). 두 피연산자가 동일할 때, XOR은 0을 반환합니다(\(12 \oplus 12 = 0\)). 음수 예제는 2의 보수 표현을 사용합니다: \(-1\)은 모든 1비트이므로, 이를 임의의 값과 XOR하면 모든 비트를 반전시킵니다(이는 비트 NOT과 동일함). \(-1 \oplus 1 = -2\)를 줍니다.
자주 묻는 질문
XOR은 무슨 뜻인가요? 배타적 논리합(Exclusive OR)을 의미하며, 두 입력 중 정확히 하나만 참(1)일 때만 결과가 참이 됩니다.
왜 XOR이 암호학에서 쓰이나요? 데이터를 키와 XOR하는 연산은 가역적이기 때문입니다. 같은 키를 한 번 더 적용하면 원래 데이터가 복원됩니다(\(A \oplus K \oplus K = A\)).
음수도 처리할 수 있나요? 네. 음수는 2의 보수(two's complement) 표현을 사용하기 때문에, 음수의 2진수 표시에는 많은 비트가 포함될 수 있습니다.