비트 NOR 계산기란?
이 도구는 \(\text{result} = \sim(\text{A} \mathbin{|} \text{B})\) 공식을 사용해 두 정수의 비트 NOR 연산 결과를 구합니다. NOR("NOT OR")는 가장 기본적인 논리 연산 중 하나입니다. 먼저 대응하는 비트끼리 OR 연산을 수행한 뒤 그 결과를 반전시키죠. 두 입력 비트가 모두 0일 때만 출력 비트가 1이 됩니다. NOR는 함수적으로 완전한(functionally complete) 연산이어서 다른 모든 논리 게이트를 NOR 게이트만으로 구성할 수 있습니다. 디지털 전자공학에서 NOR가 특히 중요하게 다뤄지는 이유가 바로 여기에 있습니다.
사용 방법
두 정수 A와 B를 입력하고 비트 폭(8·16·32·64비트)을 선택하세요. 계산기는 선택한 폭에서 부호 없는 값(unsigned)으로 해석한 NOR 결과를 보여주며, 중간 단계인 OR 값과 2진수 표현도 함께 제공합니다. 더 작은 비트 폭을 고르면 상위 비트가 단순히 마스킹되어 잘려 나가므로, 고정 폭 레지스터를 모사할 때 유용합니다.
공식 자세히 보기
두 비트의 OR는 둘 중 하나라도 1이면 1이 됩니다. NOR는 이를 반전시키므로 각 비트는 다음 진리표를 따릅니다: 0 NOR 0 = 1, 0 NOR 1 = 0, 1 NOR 0 = 0, 1 NOR 1 = 0. 단순 반전(~)은 상위 비트를 모두 1로 만들기 때문에, 결과에 \(2^{n}-1\)을 마스킹하여 선택한 부호 없는 비트 폭 안에 머무르도록 합니다. 전체 공식은 다음과 같습니다:
$$\text{NOR} = \sim\left(\text{A} \mathbin{|} \text{B}\right) \mathbin{\&} \left(2^{\text{Bits}} - 1\right)$$
계산 예시
8비트 폭에서 A = 12(2진수 1100), B = 10(2진수 1010)이라고 합시다. \(\text{A} \mathbin{|} \text{B} = 1110 = 14\)입니다. 이를 8비트 안에서 반전하면 \(11110001 = 241\)이 됩니다. 따라서 8비트 폭에서 12 NOR 10 = 241입니다.
$$\text{NOR} = \sim\left(12 \mathbin{|} 10\right) \mathbin{\&} \left(2^{8} - 1\right) = \sim 14 \mathbin{\&} 255 = 241$$
NOR 진리표 및 비트 너비 마스크
비트와이즈 NOR 연산은 두 피연산자를 비트 단위로 결합합니다. 각 비트 쌍에 대해 먼저 OR을 계산한 후 결과를 반전시킵니다. 다시 말해, 출력 비트는 두 입력 비트가 모두 0일 때만 1입니다; 다른 모든 경우에는 출력 비트가 0입니다. 이는 OR의 부정이므로 NOR(NOT-OR)이라고 합니다.
| A | B | A | B | NOR = ~(A | B) |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 |
NOT 단계가 모든 비트를 반전시키기 때문에 결과는 선택된 비트 너비에 따라 달라집니다. 피연산자를 OR한 후 반전시킨 값은 \(n\) 너비로 \(2^{n}-1\)을 사용하여 마스킹되므로 가장 낮은 \(n\) 비트만 남습니다. 지원되는 각 너비의 마스크는 다음과 같습니다.
| 비트 너비 \(n\) | 마스크 \(2^{n}-1\) (십진수) | 최대 부호 없는 값 |
|---|---|---|
| 8 | 255 | 255 |
| 16 | 65535 | 65535 |
| 32 | 4294967295 | 4294967295 |
| 64 | 18446744073709551615 | 18446744073709551615 |
예를 들어, 8비트 너비에서 \(A = 12\)이고 \(B = 10\)일 때: \(12 | 10 = 14\)이고, \(\sim 14\)를 8비트로 마스킹하면 241입니다. 중간 OR 결과 \(12 | 10 = \) 14는 독립적으로 확인할 수 있습니다.
주요 용어
- 비트와이즈 NOR
- 두 피연산자의 해당 비트가 모두 0일 때만 결과의 모든 비트가 1이 되도록 하는 연산입니다. OR 결과의 반전으로 정의됩니다: \(\text{NOR} = \sim(A | B)\).
- OR (비트와이즈)
- 두 개의 해당하는 입력 비트 중 적어도 하나가 1이면 각 결과 비트를 1로 설정하고, 둘 다 0일 때만 0으로 설정하는 연산입니다.
- NOT / 반전 (~)
- 모든 비트를 뒤집는 단항 연산입니다: 각 0은 1이 되고 각 1은 0이 됩니다. NOR에서는 OR 결과에 적용되며, 그 효과는 선택된 비트 너비에 의해 제한됩니다.
- 비트 너비
- 값을 나타내는 데 사용되는 비트 수(여기서는 8, 16, 32 또는 64)입니다. 반전된 결과가 유지하는 비트 수를 결정하므로 출력의 숫자 범위를 결정합니다.
- 마스킹
- \(2^{n}-1\)과 같은 값으로 비트와이즈 AND를 사용하여 가장 낮은 \(n\) 비트만 유지하고 높은 비트는 버립니다. 이는 NOR 결과를 선택된 너비로 제한합니다.
- 부호 없는 정수
- 부호 비트가 없는 정수 표현이므로 모든 비트 패턴은 0에서 \(2^{n}-1\)까지의 음이 아닌 값을 나타냅니다. NOR 결과는 부호 없는 값으로 보고됩니다.
- 함수적으로 완전한 (보편적인) 게이트
- 자신의 사본만을 사용하여 모든 부울 함수를 구축할 수 있는 게이트입니다. NOR은 함수적으로 완전합니다: AND, OR, NOT 모두 NOR 게이트만으로 구축할 수 있으며, 이것이 보편 게이트라고 불리는 이유입니다.
자주 묻는 질문
비트 폭에 따라 결과가 바뀌는 이유는? 반전은 모든 비트를 뒤집기 때문에 앞쪽에 붙는 1의 개수가 숫자를 표현하는 비트 수에 따라 달라집니다. 폭이 넓을수록 부호 없는 결과 값도 커집니다.
음수도 사용할 수 있나요? 입력은 정수로 처리됩니다. 깔끔한 결과를 얻으려면 선택한 폭 범위 안의 0 이상 정수를 사용하세요.
NOR와 NAND는 같은 건가요? 아닙니다. NAND는 \(\sim(\text{A} \mathbin{\&} \text{B})\)(NOT AND)이고, NOR는 \(\sim(\text{A} \mathbin{|} \text{B})\)(NOT OR)입니다. 둘 다 만능(universal) 게이트지만 서로 다른 결과를 냅니다.