2진수 계산기이란?
이진수의 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지, 거듭제곱을 수행하는 이진 산술 계산기입니다. 결과를 이진수, 십진수, 팔진수, 십육진수로 동시에 표시합니다.
기본 연산뿐 아니라 결과를 2진수, 10진수, 8진수, 16진수 네 가지 진법으로 동시에 보여 줘서 같은 값이 다른 진법에서 어떻게 보이는지 한눈에 비교할 수 있습니다. 10진수로 입력하면 계산 전에 자동으로 2진수로 바꿔 줍니다. 입력 길이에 사실상 제한이 없고 뺄셈 음수 결과도 그대로 처리합니다. 나눗셈은 정수 연산이라 나머지를 버리며 이는 저수준 CPU 명령과 같습니다. 그 나머지가 필요하면 나머지 연산을, 지수를 구하려면 거듭제곱 연산을 쓰세요. 8, 16, 32비트 레지스터 폭을 고르면 결과를 그 크기에 맞춰 채우고 CPU 레지스터가 저장하는 것과 똑같은 2의 보수 부호 있는 값으로 읽을 수 있습니다.
사용 방법
- 두 수를 입력하세요. 2진수 그대로 둬도 되고, 입력란을 10진수로 바꾸면 자동으로 2진수로 변환됩니다.
- 연산을 고르세요. 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지, 거듭제곱에 더해 비트 AND, OR, XOR, NOT과 시프트를 쓸 수 있습니다.
- 이진수, 십진수, 팔진수, 십육진수로 결과를 확인하세요.
사용 시기
- 비트 연산 과제를 검산하거나 디지털 논리 시험을 대비할 때.
- 레지스터에서 읽은 2진 값을 10진과 16진으로 동시에 비교할 때.
- 어셈블리 루틴을 작성하기 전에 자리올림과 자리내림 동작을 확인할 때.
결과
11011 + 10110(십진수 27 + 22)은 110001(49)이며, 이진수·십진수·팔진수·십육진수로 표시됩니다.
자주 묻는 질문
- 큰 수에서 작은 수를 빼지 않아도 왜 10진 결과가 음수로 나오나요?
- 이 도구는 입력을 부호 없는 양의 정수로 읽고, 결과는 부호 있는 값으로 표시합니다. 실제 CPU는 2의 보수를 쓰기 때문에 큰 양수로 감쌉니다. 0001 - 0010이 여기서는 -1로 보이지만, 8비트 레지스터에서는 11111111이 됩니다. 위에서 8비트 레지스터 폭을 고르면 그 비트 패턴과 부호 있는 읽기를 그대로 볼 수 있습니다.
- 2의 보수 입력을 지원하나요?
- 입력은 여전히 크기 값으로만 읽고 부호 비트는 없습니다. 다만 이제 직접 채울 필요가 없습니다. 8, 16, 32비트 레지스터 폭을 고르면 결과가 그 폭에 맞춰 채워지고 하드웨어 레지스터처럼 감싼 2의 보수 값으로, 부호 있는 10진수 읽기와 함께 표시됩니다.
- 나눗셈은 왜 내림만 하고 소수 결과를 안 주나요?
- 대부분 프로세서의 정수 DIV 명령과 같은 방식입니다. 0 쪽으로 잘라 내고 나머지는 버리죠. 1010 ÷ 0011(10 ÷ 3)은 11(즉 10진 3)을 반환하지 3.33이 아닙니다. 그 나머지가 필요하면 나머지 연산으로 바꾸고, 소수 결과가 필요하면 먼저 10진으로 바꿔서 계산하세요.
- 2진수 문자열은 얼마나 길게 입력할 수 있나요?
- JavaScript의 parseInt와 Number는 53비트 정밀도까지 처리하므로 약 50비트 입력까지는 결과가 정확합니다. 그보다 길어지면 부동소수점 반올림 때문에 하위 비트가 흔들릴 수 있어 학습용으로는 충분하지만 암호용으로는 부적합합니다.
- 16진수 결과는 어떻게 읽나요?
- 16진수는 2진수 4비트를 0~9와 A~F의 한 자리로 묶어 표현합니다. 그래서 2진 11111111은 16진 FF, 10진 255와 같습니다. 각 자리가 바이트의 니블과 정확히 맞아떨어져 프로그래머가 선호하는 표기입니다.