2진수 나눗셈 계산기란?
이 도구는 하나의 2진수(2진법)를 다른 2진수로 나누어 몫과 나머지를 모두 구해 주며, 결과를 이진수와 십진수 양쪽으로 보여 줍니다. 이진 장제법을 손으로 직접 계산하면 실수가 잦기 때문에, 이 계산기는 입력값을 먼저 십진수로 변환한 뒤 정수 나눗셈을 수행하고, 그 결과를 다시 2진수로 변환해 줍니다.
사용 방법
첫 번째 칸에 피제수(나누어지는 수)를, 두 번째 칸에 제수를 입력하세요. 이때 숫자는 0과 1만 사용해야 합니다. 계산 버튼을 누르면 몫과 나머지가 표시됩니다. 0으로 나누는 것은 정의되지 않으므로 제수는 0이 될 수 없습니다.
공식 풀이
두 이진수 입력값을 A와 B라고 하면, 계산기는 \(A_{10} = \text{parseBinary}(A)\), \(B_{10} = \text{parseBinary}(B)\)로 변환합니다. 정수 몫은 \(Q = \left\lfloor A_{10} / B_{10} \right\rfloor\)이고, 나머지는 \(R = A_{10} \bmod B_{10}\)입니다. 다음은 전체 공식입니다.
$$\begin{gathered} \text{Dividend}_2 \div \text{Divisor}_2 = Q \;\text{remainder}\; R \\[1.5em] \text{where}\quad \left\{ \begin{aligned} Q &= \left\lfloor \frac{A}{B} \right\rfloor \\ R &= A \bmod B \\ A &= (\text{Dividend}_2)_{10} \\ B &= (\text{Divisor}_2)_{10} \end{aligned} \right. \end{gathered}$$그런 다음 Q와 R을 다시 2진수로 변환합니다. 이는 컴퓨터가 부호 없는 정수 나눗셈을 처리하는 방식과 동일합니다.
계산 예시
\(1100_2\)을 \(10_2\)으로 나눠 봅시다. 십진수로 바꾸면 \(1100_2 = 12\), \(10_2 = 2\)입니다. 따라서 $$12 \div 2 = 6$$이고 나머지는 0입니다. 다시 이진수로 변환하면 \(6 = 110_2\), \(0 = 0_2\)이 됩니다. 즉 $$1100 \div 10 = \mathbf{110},\ \text{나머지}\ \mathbf{0}$$입니다.
이진수를 손으로 나누는 방법
이진 장제법은 십진 장제법과 정확히 같은 방식으로 작동하지만 실제로는 더 간단합니다: 각 단계에서 제수가 현재 비트에 들어맞거나 (숫자 1 작성) 들어맞지 않습니다 (숫자 0 작성). 외워야 할 곱셈표가 없습니다 — 제수에 0 또는 1만 곱하면 됩니다.
\(\text{피제수}_2 \div \text{제수}_2 = Q \;\text{나머지}\; R\)을 계산하는 일반적인 절차는 다음과 같습니다:
- 최상위 비트부터 정렬합니다. 피제수의 맨 왼쪽 비트로 시작하여 현재 작업 값으로 설정합니다.
- 비교합니다. 현재 작업 값을 제수와 비교합니다. 작업 값이 제수 이상이면 제수가 "들어맞습니다."
- 몫 비트를 작성합니다. 들어맞으면 위에 1을 작성하고, 그렇지 않으면 0을 작성합니다.
- 빼기. 1을 작성했으면 제수를 작업 값에서 빼고, 그 차이가 새로운 작업 값이 됩니다. 0을 작성했으면 작업 값은 변하지 않습니다.
- 피제수의 다음 비트를 내립니다 그리고 이를 작업 값에 추가합니다.
- 반복합니다 2–5단계를 피제수의 모든 비트가 내려질 때까지 반복합니다.
- 결과를 읽어냅니다. 위에 모인 비트들이 몫 \(Q\)을 형성합니다. 남은 작업 값이 나머지 \(R\)입니다.
작업 예: \(1011_2 \div 10_2\) (즉, 십진법으로 11 ÷ 2).
- 첫 번째 비트를 내립니다: 작업 값 =
1. \(1 \ge 10\)인가요? 아니오 → 몫 비트 0. - 다음 비트를 내립니다: 작업 값 =
10. \(10 \ge 10\)인가요? 예 → 몫 비트 1, 빼기: \(10 - 10 = 0\). - 다음 비트를 내립니다: 작업 값 =
01=1. \(1 \ge 10\)인가요? 아니오 → 몫 비트 0. - 마지막 비트를 내립니다: 작업 값 =
11. \(11 \ge 10\)인가요? 예 → 몫 비트 1, 빼기: \(11 - 10 = 1\). - 남은 비트가 없습니다. 몫 =
0101= 101, 나머지 =1.
십진법으로 교차 검증: \(11 \div 2 = 5\) 나머지 \(1\), 그리고 \(101_2 = 5\), \(1_2 = 1\). ✓
더 많은 이진 나눗셈 예
각 예는 이진 장제법을 십진 교차 검증과 함께 보여주며, 관계식은 항상 \(\text{피제수} = \text{제수}\times Q + R\)입니다.
예 1 — 0이 아닌 나머지: \(1011_2 \div 10_2\)
- 십진 등가: \(1011_2 = 11\), \(10_2 = 2\).
- 장제법은 몫 비트
101과 남은 비트1을 제공합니다. - 결과: \(1011_2 \div 10_2 = 101_2 \;\text{나머지}\; 1_2\) → 십진법으로 \(11 \div 2 = 5\;\text{나머지}\;1\).
- 확인: \(2 \times 5 + 1 = 11\). ✓
예 2 — 제수가 피제수보다 큼: \(100_2 \div 1000_2\)
- 십진 등가: \(100_2 = 4\), \(1000_2 = 8\).
- 제수(8)가 피제수(4)보다 크므로, 절대 들어맞지 않으므로 모든 몫 비트는 0입니다.
- 결과: \(100_2 \div 1000_2 = 0 \;\text{나머지}\; 100_2\) → 십진법으로 \(4 \div 8 = 0\;\text{나머지}\;4\).
- 확인: \(8 \times 0 + 4 = 4\). ✓ 피제수가 제수보다 작으면 몫은 항상 0이고 나머지는 피제수 자신입니다.
예 3 — 깔끔한 나눗셈과 교차 검증: \(11110_2 \div 110_2\)
- 십진 등가: \(11110_2 = 30\), \(110_2 = 6\).
- 비트를 내려서
110에 도달하면 한 번 들어맞습니다. 계속 비트를 내려서 들어맞을 때마다 \(110\)을 빼세요. - 결과: \(11110_2 \div 110_2 = 101_2 \;\text{나머지}\; 0\) → 십진법으로 \(30 \div 6 = 5\;\text{나머지}\;0\).
- 몫 확인: \(101_2 = 5\), 그리고 \(6 \times 5 + 0 = 30\) 확인. ✓ 나머지가 0이므로 나눗셈은 정확합니다.
이진-십진 변환기로 이러한 변환을 확인할 수 있으며, 몫과 제수를 다시 곱하여 최종 확인을 수행할 수 있습니다.
이진 나눗셈의 주요 용어
- 피제수
- 나누어지는 수 — 나눗셈 괄호 아래에 작성되는 값. \(1011_2 \div 10_2\)에서 피제수는 \(1011_2\)입니다.
- 제수
- 나누는 수. \(1011_2 \div 10_2\)에서 제수는 \(10_2\)입니다. 제수는 0이 아니어야 합니다.
- 몫
- 나눗셈의 정수 결과 — 제수가 피제수에 들어맞는 횟수. 괄호 위에 작성되며, 단계마다 한 비트씩.
- 나머지
- 최대 정수 몫을 제거한 후 남은 양: \(R = \text{피제수} - \text{제수}\times Q\). 항상 제수보다 작습니다.
- 이진법(2진법)
- 0과 1만을 사용하는 수 체계로, 각 자리값은 2의 거듭제곱(\(1, 2, 4, 8, \dots\))이며 10의 거듭제곱이 아닙니다.
- 비트
- 단일 이진 자리(0 또는 1) — "binary digit"의 약자입니다.
- LSB / MSB
- 최하위 비트는 맨 오른쪽 비트(1의 자리)이고, 최상위 비트는 맨 왼쪽 비트(가장 높은 자리값)입니다. 이진 장제법은 MSB에서 LSB로 향해 비트를 처리합니다.
- 정수 나눗셈 / 버림 나눗셈
- 정수 몫만 유지하고 소수 부분을 버리는 나눗셈 — 정확히 이진 장제법이 나머지와 함께 생성하는 것입니다.
- 모듈로
-
나눗셈의 나머지만 반환하는 연산(종종
mod또는%로 작성됨). \(1011_2 \div 10_2\)의 경우 모듈로 결과는 \(1_2\)입니다.
자주 묻는 질문
소수점이 있는 이진수도 나눌 수 있나요? 아니요. 이 계산기는 부호 없는 정수 이진수만 처리하며, 정수 몫과 나머지를 반환합니다.
제수가 피제수보다 크면 어떻게 되나요? 몫은 0이 되고 나머지는 피제수와 같아집니다. 예를 들어 \(10 \div 100\)은 몫 0, 나머지 10입니다.
왜 십진수도 함께 보여 주나요? 십진수 값을 함께 보면 결과를 손쉽게 검산할 수 있고 변환 과정을 이해하는 데에도 도움이 되기 때문입니다.