이진수 계산기
이진수 덧셈·뺄셈·곱셈·나눗셈, 10진 변환, 비트 연산을 지원합니다. 이진 계산기는 자릿값과 2의 보수를 표시합니다.
입력하면 결과가 갱신됩니다. Ctrl/Cmd+Enter로 주요 결과 복사.
결과
—
비트 보기
풀이 보기
이진 계산기는 2진수 덧셈·뺄셈·곱셈·나눗셈, 이진수와 10진수 상호 변환, 비트 단위 AND·OR·XOR·NOT·시프트를 수행합니다. 모든 결과에 10진 확인값과 열별 분해가 포함되어 올림과 빌림을 손으로 검산할 수 있습니다. 2의 보수 작업용 비트 폭을 지정하거나, 폭 없이 레지스터 래핑 없이 정확한 연산을 할 수 있습니다.
계산은 모두 브라우저에서 실행됩니다. 입력 내용은 서버로 전송되지 않습니다.
이진수 덧셈·뺄셈·곱셈·나눗셈
이진 연산은 10진과 같은 열 규칙을 쓰지만, 각 자리는 0 또는 1만 담고 올림 임계값은 10이 아니라 2입니다. 두 이진 문자열을 입력하고 연산을 선택하면, 계산기는 이진 결과와 옆의 10진 확인값을 반환합니다. 비트 폭을 선택하지 않은 한 출력에서 선행 0은 제거됩니다.
덧셈에서는 열 합이 2 이상일 때 올림이 발생합니다. 뺄셈에서는 피감수 자릿수가 더 작을 때 더 높은 비트에서 빌립니다. 곱셈과 나눗셈은 10진에서 배우는 장식 나눗셈·곱셈과 같은 형식으로, 시프트와 덧셈으로 구성됩니다. 2나 A 같은 잘못된 자릿수는 2진수로 불법이므로 즉시 거부됩니다.
이진수를 10진수로 변환
위치 표기법은 각 비트에 2의 거듭제곱을 곱해 더함으로써 이진 문자열을 10진 정수로 바꿉니다. 가장 오른쪽 비트는 2⁰(값 1), 다음은 2¹(값 2), 이어서 4, 8, 16입니다. 10111을 입력하면 전개는 16 + 0 + 4 + 2 + 1 = 23입니다.
1 0 1 1 1
│ │ │ │ └─ 1 × 2⁰ = 1
│ │ │ └─── 1 × 2¹ = 2
│ │ └───── 1 × 2² = 4
│ └─────── 0 × 2³ = 0
└───────── 1 × 2⁴ = 16
= 23
계산기가 받아들이는 모든 이진 문자열은 이 방식으로 변환됩니다. 4비트 단위(니블)로 묶으면 서브넷 마스크나 권한 비트필드를 소리 내어 읽을 때 자리가 더 분명해집니다. 1010 1010은 8자리를 끊지 않은 것보다 읽기 쉽습니다.
10진수를 이진수로 변환
2로 반복 나누면 나머지로 이진 자릿수가 생깁니다. 10진 값을 2로 나누고 나머지(0 또는 1)를 기록한 뒤 몫을 다시 나누고, 몫이 0이 될 때까지 반복합니다. 나머지를 마지막에서 처음 순으로 읽으면 이진 형식이 됩니다.
23의 경우:
| 단계 | 몫 | 나머지 |
|---|---|---|
| 23 ÷ 2 | 11 | 1 |
| 11 ÷ 2 | 5 | 1 |
| 5 ÷ 2 | 2 | 1 |
| 2 ÷ 2 | 1 | 0 |
| 1 ÷ 2 | 0 | 1 |
나머지를 아래에서 읽으면 10111입니다. 계산기는 양방향 변환을 수행하고 두 형식을 함께 표시하므로, 연산 전에 잘못 입력한 자릿수가 분명해집니다.
10101010과 11001100 더하기
10101010과 11001100 더하기는 올림이 있는 열 덧셈의 작업용 픽스처입니다. 10진에서는 피연산자가 170과 204, 합은 374이며 이진으로는 101110110입니다. 예전 개요에서 110001110으로 적힌 내용은 틀렸고, 아래 연산이 올바른 결과입니다.
1 1 1 1 1 0 0 0 carries
1 0 1 0 1 0 1 0 170
+ 1 1 0 0 1 1 0 0 204
-----------------
1 0 1 1 1 0 1 1 0 374
오른쪽부터 열별로: 0+0=0, 1+0=1, 0+1=1, 1+1=0 올림 1, 0+0+올림=1, 1+0=1, 0+1=1, 1+1=0 올림 1, 마지막 올림으로 아홉 번째 비트가 기록됩니다. 9비트 결과 101110110은 256 + 0 + 64 + 32 + 16 + 0 + 4 + 2 + 0 = 374와 일치합니다. 이진 계산기는 모든 덧셈에서 이 올림 행을 표시하므로 손 검산과 출력이 맞습니다.
빌림을 사용한 이진수 뺄셈
이진 뺄셈에서는 열이 0에서 1을 빌려야 할 때 빌림이 발생합니다. 더 높은 비트에서 빌리면 현재 0은 2(이진 10)가 되고, 빌려준 쪽은 1을 잃습니다. 그쪽도 0이면 1을 찾을 때까지 빌림이 전파됩니다.
예: 1000에서 0001 빼기.
1 0 0 0
- 0 0 0 1
---------
0 1 1 1
가장 오른쪽 열은 세 개의 0을 가로질러 빌립니다. 연쇄가 정리되면 빌린 각 열은 1이 되고, 빌려준 가장 왼쪽 비트는 0이 되어 0111(10진 7)이 남습니다. 비트 폭을 지정했고 결과가 음수가 될 때, 계산기는 무제한 음수 크기 대신 2의 보수 래핑을 표시할 수 있습니다. 무제한 모드는 부호 있는 정수를 래핑 없이 정확히 유지합니다.
비트 연산 적용
비트 연산자는 문자열 전체를 하나의 정수로 다루지 않고 각 비트에 독립적으로 작용합니다. AND는 두 입력이 모두 1일 때만 1을 반환합니다. OR는 어느 입력이 1이면 1을 반환합니다. XOR는 비트가 다를 때 1을 반환합니다. NOT은 선택한 폭의 모든 비트를 뒤집습니다. 시프트는 비트를 이동하고 0으로 채우거나, 산술 우측 시프트에서는 부호 비트로 채웁니다.
| A | B | AND | OR | XOR |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
비트 마스크는 선택한 필드를 지우거나 유지합니다. value AND mask는 마스크가 0인 비트를 모두 0으로 만듭니다. value OR flag는 비트를 설정합니다. value XOR toggle은 선택 비트만 뒤집고 나머지는 건드리지 않습니다. 이런 패턴은 권한 플래그, 상태 레지스터, IPv4 주소에 서브넷 마스크를 적용한 네트워크 부분에 나타납니다.
2의 보수로 음수 표현
2의 보수는 고정 폭 이진수에서 음의 정수를 저장하는 표준 방식입니다. n비트 레지스터에서 값을 부정하려면 모든 비트를 반전하고 1을 더합니다. 최상위 비트가 부호 비트로, 0은 음이 아님, 1은 음수를 뜻합니다. n비트로 표현 가능한 범위는 −2ⁿ⁻¹부터 2ⁿ⁻¹ − 1까지입니다.
8비트에서 +5는 00000101입니다. 반전하면 11111010, 1을 더하면 11111011로 −5입니다. 00000101과 11111011을 더하면 레지스터 밖으로 넘치는 올림과 함께 00000000이 되어 부정 검증이 됩니다. 폭이 없으면 고정 부호 비트가 없어 2의 보수가 정의되지 않으므로, 계산기는 보수 형식을 표시하기 전에 폭(8, 16, 32 또는 64)을 요구합니다.
오버플로는 실제 수학적 결과가 선택한 폭에 맞지 않을 때 발생합니다. 이진 계산기는 래핑을 표시하므로 조용히 잘린 답을 정확한 답으로 착각하지 않습니다.
이진 자릿값 표 읽기
이진 소수점 왼쪽에서는 자릿값이 한 단계 왼쪽으로 갈 때마다 두 배가 됩니다. 처음 여덟 개를 외우면 대부분의 바이트 수준 작업에 충분합니다: 1, 2, 4, 8, 16, 32, 64, 128. 4비트가 니블, 8비트가 바이트입니다. 많은 아키텍처에서 16비트가 워드이고, 오늘 흔한 레지스터 크기는 32와 64입니다.
| 비트 인덱스 | 거듭제곱 | 값 |
|---|---|---|
| 0 | 2⁰ | 1 |
| 1 | 2¹ | 2 |
| 2 | 2² | 4 |
| 3 | 2³ | 8 |
| 4 | 2⁴ | 16 |
| 5 | 2⁵ | 32 |
| 6 | 2⁶ | 64 |
| 7 | 2⁷ | 128 |
모두 1인 바이트 11111111은 255입니다. 최상위 비트만 10000000은 128입니다. 설정된 자릿값의 합으로 읽는 편이 표에 익숙해지면 자릿수별 변환보다 빠르며, 계산기의 전개 보기는 그 머릿속 검산과 일치합니다.
실무에서 이진수 사용
이진수는 하드웨어나 프로토콜이 비트필드를 노출하는 곳에 나타납니다. 서브넷 마스크는 앞이 1인 32비트 패턴입니다. Unix 파일 모드는 읽기·쓰기·실행을 9비트 권한에 담습니다. 색 채널은 흔히 8비트 값입니다. CPU 플래그와 장치 레지스터는 불리언 상태를 단일 비트에 담아 마스크로 이웃을 건드리지 않고 테스트하거나 지울 수 있습니다.
메모리 주소와 기계 명령은 16진 덤프 아래에서는 모두 이진입니다. 디버깅할 때 의심스러운 플래그 워드를 이진으로 바꿔 데이터시트와 맞추는 것이 10진 형태에서 추측하는 것보다 보통 빠릅니다. 계산기는 이진 보기와 10진 보기를 연결해 그 왕복이 정확하게 유지됩니다.
자주 묻는 질문
이진 덧셈에서 올림은 어떻게 생기나요?
열 합이 2 이상일 때 올림이 나타납니다. 각 자리는 0 또는 1만 담을 수 있으므로, 합 2는 0을 쓰고 다음 열로 1을 올리고, 합 3은 1을 쓰고 1을 올립니다. 임계값만 작을 뿐, 10진 올림과 같은 과정입니다.
이진수를 손으로 10진수로 변환하려면?
각 비트에 2의 거듭제곱을 곱해 곱을 더합니다. 가장 오른쪽 비트는 1, 다음 2, 4, 8 순입니다. 10111은 16 + 0 + 4 + 2 + 1 = 23입니다. 계산기는 모든 변환에서 같은 전개를 표시합니다.
10진수를 손으로 이진수로 변환하려면?
수를 2로 반복 나누고 나머지를 모읍니다. 각 나머지가 오른쪽에서 왼쪽으로 다음 이진 자릿수입니다. 몫이 0이 되면 멈추고 나머지를 마지막에서 처음 순으로 읽습니다. 10진 23은 그 방법으로 10111이 됩니다.
2의 보수란 무엇인가요?
2의 보수는 고정 비트 폭에서 크기의 비트를 반전하고 1을 더해 음의 정수를 표현합니다. 최상위 비트가 부호로 작용합니다. 그 폭 안에서 수와 2의 보수를 더하면 0이 되어 프로세서가 뺄셈에 쓰는 이유입니다.
비트 마스크란 무엇인가요?
비트 마스크는 AND·OR·XOR와 함께 선택 비트를 지우거나 설정하거나 토글하는 이진 패턴입니다. 마스크와 AND하면 마스크가 1인 비트만 남기고 나머지는 0으로 만듭니다. OR는 설정, XOR는 뒤집습니다. 마스크는 권한, 프로토콜 플래그, 하드웨어 레지스터에 나타납니다.
왼쪽 시프트와 2를 곱하는 것의 차이는?
한 자리 왼쪽 시프트는 레지스터 밖으로 비트가 밀려나지 않는 한 부호 없는 값을 2배합니다. 한 자리 오른쪽 시프트는 2로 나누고 나머지를 버립니다. 고정 폭에서는 끝에서 밀려난 비트는 사라지고, 무제한 모드에서는 문자열이 늘어납니다.
NOT과 부정에서 비트 폭이 중요한 이유는?
NOT은 레지스터의 모든 비트를 뒤집습니다. 정의된 폭이 없으면 뒤집을 유한 비트 집합이 없어 연산이 무의미합니다. 2의 보수 부정도 부호 비트와 래핑 동작을 정의하려면 폭이 필요합니다. 모델링하는 레지스터에 맞게 8, 16, 32 또는 64를 선택하세요.
니블이란 무엇인가요?
니블은 4비트로, 바이트의 절반입니다. 16진 자릿수 하나와 깔끔히 대응하므로 16진 덤프와 색 코드는 4비트 단위로 묶입니다. 니블의 자릿값은 1, 2, 4, 8이며 모두 설정하면 15입니다.
이진 계산기로 이진수 나눗셈을 할 수 있나요?
예. 나눗셈은 몫을 이진으로 반환하고 옆에 10진 확인값을 표시합니다. 0으로 나누기는 거부됩니다. 특정 문제에서 더 넓은 정밀 모드를 선택하지 않는 한, 나머지는 정수 나눗셈 규칙을 따릅니다.
계산기가 이진 입력을 서버로 보내나요?
아니요. 모든 연산과 변환은 브라우저에서 로컬로 실행됩니다. 입력값은 업로드되지 않으며, 문자열이 메모리 덤프, 키, 내부 주소에서 온 경우에 중요합니다.
요약
이진 계산기는 2진 연산, 2의 거듭제곱을 통한 10진 상호 변환, 선택적 레지스터 폭의 비트 단위 AND·OR·XOR·NOT·시프트를 수행합니다. 10101010과 11001100을 더하면 101110110(170 + 204 = 374)이 되며, 올림이 열별로 표시됩니다.
2의 보수 부정과 비트 NOT에는 비트 폭이 필요합니다. 무제한 모드는 결과를 수학적으로 정확히 유지합니다. 자릿값, 니블, 바이트를 나열해 마스크, 권한, 플래그에 쓰는 이진 문자열을 추측 없이 읽을 수 있습니다.