이 계산기로 할 수 있는 일
이 도구는 두 음이 아닌 정수 사이의 가장 기본적인 비트 논리 연산 세 가지, 즉 AND, OR, XOR를 한 번에 계산합니다. 각 피연산자는 10진수(base 10), 16진수(base 16), 8진수(base 8), 6진수(base 6), 2진수(base 2) 중 어느 진법으로도 입력할 수 있습니다. 연산 결과는 이 다섯 가지 진법으로 모두 표시되므로, 작업에 필요한 형태로 곧바로 읽을 수 있습니다. 모든 값은 부호 없는(unsigned) 정수로 처리되며 0부터 \(2^{64} - 1\)까지의 전체 범위를 지원합니다.
사용 방법
첫 번째 숫자를 x 입력란에 적고, 그 숫자가 어떤 진법으로 적혀 있는지 선택합니다. 두 번째 숫자 y도 같은 방식으로 입력합니다. 진법 선택은 입력한 텍스트를 어떻게 해석할지에만 영향을 줄 뿐, 실제 연산은 항상 그 값이 가리키는 정수 자체에 대해 수행됩니다. 결과 표에는 AND, OR, XOR 값이 각각 10진수·16진수·8진수·6진수·2진수 행으로 정리되어 나타납니다.
공식 이해하기
비트 연산은 각 정수의 2진 표현을 한 비트 자리씩 차례로 비교합니다. AND는 두 입력 비트가 모두 1일 때만 결과 비트를 1로 만듭니다. OR는 두 입력 비트 중 적어도 하나가 1이면 결과 비트를 1로 만듭니다. XOR(배타적 OR)는 두 입력 비트 중 정확히 하나만 1일 때 결과 비트를 1로 만듭니다. 같은 값을 XOR하면 0이 되기 때문에, XOR는 패리티 검사나 체크섬 계산에 특히 잘 맞습니다.
$$\begin{gathered} X = \text{parse}\!\left(\text{x},\ \text{base}_x\right), \quad Y = \text{parse}\!\left(\text{y},\ \text{base}_y\right) \\[1.2em] \text{AND} = X \mathbin{\&} Y, \quad \text{OR} = X \mid Y, \quad \text{XOR} = X \oplus Y \end{gathered}$$
예제로 살펴보기
\(x = 115\), \(y = 234\)(둘 다 10진수)를 예로 들어 보겠습니다. 2진수로 나타내면 \(115 = 0111\,0011\), \(234 = 1110\,1010\)입니다. AND는 $$0110\,0010 = 98 = \text{16진수 } 62 = \text{8진수 } 142 = \text{6진수 } 242 = \text{2진수 } 1100010$$이 됩니다. OR는 $$1111\,1011 = 251 = \text{16진수 } fb = \text{8진수 } 373 = \text{6진수 } 1055$$입니다. XOR는 $$1001\,1001 = 153 = \text{16진수 } 99 = \text{8진수 } 231 = \text{6진수 } 413 = \text{2진수 } 10011001$$입니다.
비트 단위 연산 진리표
비트 단위 연산은 두 비트 쌍의 각 비트에 독립적으로 작용합니다. 아래 표는 두 입력 비트 \(A\)와 \(B\)의 모든 가능한 조합과 AND (\(\&\)), OR (\(\mid\)) 및 XOR (\(\oplus\))의 결과 출력 비트를 보여줍니다.
| A | B | A AND B (\(A \mathbin{\&} B\)) | A OR B (\(A \mid B\)) | A XOR B (\(A \oplus B\)) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
다시 말해, AND는 둘 다 비트가 1일 때만 1을 반환하고, OR은 적어도 하나의 비트가 1일 때 1을 반환하며, XOR은 비트가 다를 때 1을 반환합니다. 두 개의 다중 비트 정수를 결합할 때, 연산은 정렬된 각 비트 위치에 별도로 적용됩니다. 예를 들어 \(12 = 1100_2\)와 \(10 = 1010_2\)를 비트 단위로 결합하면 AND \(=1000_2 = 8\), OR \(=1110_2 = 14\), XOR \(=0110_2 = 6\)입니다.
진법 숫자 변환표
AND, OR 또는 XOR을 계산하기 전에, 피연산자가 올바른 진법으로 입력되었는지 확인하세요. 센터리 진법은 6진법(숫자 0–5)이고, 팔진법은 8진법(숫자 0–7)이며, 십육진법은 16진법(숫자 0–9 다음 A–F)입니다. 아래 표는 지원되는 5가지 진법 모두에서 10진수 0–16을 나열합니다.
| 십진법 (10) | 십육진법 (16) | 팔진법 (8) | 센너리 (6) | 이진법 (2) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 | 10 |
| 3 | 3 | 3 | 3 | 11 |
| 4 | 4 | 4 | 4 | 100 |
| 5 | 5 | 5 | 5 | 101 |
| 6 | 6 | 6 | 10 | 110 |
| 7 | 7 | 7 | 11 | 111 |
| 8 | 8 | 10 | 12 | 1000 |
| 9 | 9 | 11 | 13 | 1001 |
| 10 | A | 12 | 14 | 1010 |
| 11 | B | 13 | 15 | 1011 |
| 12 | C | 14 | 20 | 1100 |
| 13 | D | 15 | 21 | 1101 |
| 14 | E | 16 | 22 | 1110 |
| 15 | F | 17 | 23 | 1111 |
| 16 | 10 | 20 | 24 | 10000 |
이진 1100 변환기를 사용하여 다른 진법의 단일 값을 확인할 수 있으며, 이는 10진수 12를 반환합니다. 이진 1100
정의 및 용어집
- 비트
- 0 또는 1의 값을 갖는 디지털 정보의 가장 작은 단위입니다. 이 계산기의 모든 정수는 비트의 시퀀스로 처리됩니다.
- 비트 단위 연산
- 두 피연산자의 각 해당 비트에 독립적으로 적용되는 연산입니다. AND, OR 및 XOR은 여기서 계산되는 세 가지 결합 연산입니다.
- 진법 (기수)
- 위치 기수법이 사용하는 서로 다른 숫자의 개수입니다. 십진법은 10진법, 이진법은 2진법, 팔진법은 8진법, 센너리 진법은 6진법, 십육진법은 16진법입니다. 각 숫자 위치는 진법의 거듭제곱을 나타냅니다.
- 부호 없는 정수
- 부호 비트가 없는 음이 아닌 정수입니다. 모든 비트가 크기에 기여합니다. 이 도구는 부호 없는 값만 허용합니다.
- 센너리
- 숫자 0–5를 사용하는 6진 기수법입니다. 자리수 값은 6의 거듭제곱입니다. 예: \(24_6 = 2\times6 + 4 = 16\).
- 십육진법
- 숫자 0–9와 문자 A–F(A=10 … F=15)를 사용하는 16진 기수법입니다. 각 십육진 숫자는 정확히 4개의 이진 비트로 깔끔하게 매핑됩니다.
- 팔진법
- 숫자 0–7을 사용하는 8진 기수법입니다. 각 팔진 숫자는 정확히 3개의 이진 비트로 매핑됩니다.
- 마스크
- 특정 비트를 선택, 설정 또는 지우기 위해 비트 단위 연산과 함께 사용되는 상수 값입니다. 예: \(0\text{F}_{16}\)으로 AND 연산을 하면 하위 4비트만 유지됩니다.
- 패리티
- 값의 1-비트 개수가 짝수인지 홀수인지 여부입니다. XOR은 패리티 검사의 기초입니다: 모든 비트의 XOR은 홀수 패리티의 경우 1이고 짝수 패리티의 경우 0입니다.
자주 묻는 질문
음수도 입력할 수 있나요? 아니요. 입력값은 음이 아닌 부호 없는 정수만 가능하며, 2의 보수 방식의 부호 처리는 지원하지 않습니다.
잘못된 자릿수를 입력하면 어떻게 되나요? 선택한 진법에서 허용되지 않는 자릿수(예: 8진수에서 "8")는 무시되거나 0으로 처리되므로, 진법 선택이 맞는지 꼭 확인하세요.
체크섬에 왜 XOR를 쓰나요? 여러 바이트를 차례로 XOR한 뒤 같은 바이트들을 다시 XOR하면 0으로 돌아오기 때문입니다. 덕분에 XOR는 1비트 변화를 감지하고 패리티를 계산하는 간단하면서도 되돌릴 수 있는 방법이 됩니다.