진법 변환 참조표
이 표는 같은 값을 네 가지 진법으로 적은 것입니다. 16진수 한 자리가 2진수 네 자리에, 8진수 한 자리가 세 자리에 대응하는 것을 확인하십시오.
| 10진수 | 2진수 | 8진수 | 16진수 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 5 | 101 | 5 | 5 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 100 | 1100100 | 144 | 64 |
| 255 | 11111111 | 377 | FF |
- 이 계산기는 IEEE 754 배정밀도 산술의 안전한 정수 한계(2^53 − 1 = 9,007,199,254,740,991)까지의 음이 아닌 정수를 처리합니다. 더 큰 입력은 조용히 반올림하지 않고 거부됩니다.
- 소수 값과 음수(2의 보수 표현)는 이 변환기의 범위 밖입니다.
2진법이란 무엇입니까?
2진법은 밑이 2인 위치 기수법으로, 0과 1이라는 숫자만으로 모든 수를 적으며 각 자리는 2의 거듭제곱을 나타냅니다. 2진수 1010을 오른쪽부터 읽으면 각 자리는 0×1 + 1×2 + 0×4 + 1×8 = 10(10진수)을 뜻합니다. 디지털 전자 회로가 정보를 2진수로 저장하고 처리하는 이유는 두 가지 상태(켜짐/꺼짐)를 갖는 회로 소자가 2진수 한 자리, 즉 1비트에 그대로 대응하기 때문입니다.
16진법(밑 16)과 8진법(밑 8)은 2진법을 간결하게 나타내는 동반 표기입니다. 16 = 2^4이므로 16진수 한 자리는 2진수 정확히 네 자리를 나타내고, 8 = 2^3이므로 8진수 한 자리는 정확히 세 자리를 나타냅니다. 16진법은 숫자 0-9에 더해 10부터 15까지의 값에 문자 A-F를 씁니다. 10진수 255는 2진수로 11111111, 16진수로 FF, 8진수로 377입니다.
모든 위치 기수법은 같은 규칙을 따릅니다. 밑이 b인 체계에서 dₙ…d₁d₀로 적힌 수는 각 자릿수에 b를 그 자리의 지수만큼 거듭제곱한 값을 곱해 모두 더한 값입니다. 따라서 진법 변환은 순전히 표기상의 작업입니다. 원래 진법을 기준으로 자릿수를 평가해 값을 얻은 뒤, 목표 진법으로 반복해 나누어 그 값을 적으면 됩니다.
이 2진수 계산기 사용법
- 변환하려는 수를 입력합니다(최대 64자리, 0b, 0x, 0o 같은 접두사는 허용되며 무시됩니다).
- 그 수가 쓰인 진법을 선택합니다 — 2진법, 10진법, 16진법 또는 8진법.
- 10진수 값과 그에 해당하는 2진수, 16진수, 8진수 표현을 확인합니다.
- 선택한 진법에서 유효한 숫자만 입력할 수 있습니다. 예를 들어 8진수 입력에서 숫자 8은 유효하지 않습니다.
진법 변환의 원리
10진수로 변환하려면 각 자릿수에 해당 자리의 지수만큼 거듭제곱한 밑을 곱해(오른쪽 끝을 0으로 셈) 모두 더합니다. 10진수에서 다른 진법으로 변환하려면 목표 진법으로 반복해 나누고 나머지를 역순으로 읽습니다.
계산 예시: 2진수 1010은 1×2^3 + 0×2^2 + 1×2^1 + 0×2^0 = 8 + 2 = 10(10진수)입니다. 10을 다른 진법으로 적으면, 10 ÷ 16 = 0 나머지 10이므로 16진수로 A이고, 10 ÷ 8 = 1 나머지 2이므로 8진수로 12입니다.
흔히 저지르는 실수
- 다른 진법의 10을 '십'으로 읽는 것 — 모든 위치 기수법에서 10은 그 진법의 밑을 뜻합니다(2진수 10 = 2, 8진수 10 = 8, 16진수 10 = 16).
- 선택한 진법에 존재하지 않는 숫자를 쓰는 것. 예컨대 8진수의 8이나 9, 16진수에서 F를 넘어서는 문자가 그렇습니다.
- 비트 묶음 크기를 헷갈리는 것: 16진수 한 자리는 4비트, 8진수 한 자리는 3비트이므로 2진수를 잘못 묶으면 변환 결과가 틀립니다.
- 앞자리 0은 아무것도 바꾸지 않는다는 점을 잊는 것. 2진수 0010과 10은 모두 10진수로 2입니다.
자주 묻는 질문
2진수를 손으로 10진수로 어떻게 변환합니까?
각 2진수 자릿수에 해당 자리의 2의 거듭제곱을 곱한 뒤(맨 오른쪽 자리를 0으로 셈) 결과를 모두 더합니다. 1101의 경우 1×8 + 1×4 + 0×2 + 1×1 = 13입니다. 오른쪽에서 왼쪽으로 읽으면 자릿값은 1, 2, 4, 8, 16, 32와 같이 이어집니다.
10진수를 2진수로 어떻게 변환합니까?
수를 2로 반복해 나누며 나머지를 기록합니다. 그 나머지를 역순으로 읽은 것이 2진수 결과입니다. 13의 경우 13÷2 = 6 나머지 1, 6÷2 = 3 나머지 0, 3÷2 = 1 나머지 1, 1÷2 = 0 나머지 1이므로 위로 읽으면 1101이 됩니다.
컴퓨터는 왜 2진법을 사용합니까?
디지털 회로는 두 가지 전압 상태를 안정적으로 구분하며, 각 상태는 2진수 한 자리(비트)에 대응합니다. 두 상태를 중심으로 하드웨어를 만들면 저장과 논리가 단순해지고 잡음에 강해지므로, 프로그래머가 위에서 어떤 표기를 쓰든 주요 프로세서와 메모리는 물리적 수준에서 데이터를 2진수로 나타냅니다.
16진법은 어디에 쓰입니까?
16진법은 2진수를 간결하게 적는 방법입니다. 16진수 한 자리가 정확히 4비트를 인코딩하므로 1바이트는 항상 두 자리(00-FF)입니다. 2진수보다 훨씬 짧으면서 자리별로 곧바로 변환되기 때문에 메모리 주소, 색상 코드(예: #FF6600), MAC 주소, 원시 데이터 덤프의 표준 표기로 쓰입니다.
이 계산기가 받는 가장 큰 수는 무엇입니까?
입력은 64자리 이하로, 그리고 IEEE 754 배정밀도 부동소수점이 정확히 표현할 수 있는 가장 큰 정수인 2^53 − 1 = 9,007,199,254,740,991 이하의 값으로 제한됩니다. 그 한계를 넘으면 일반적인 JavaScript 숫자는 정수 정밀도를 잃으므로, 계산기는 반올림된 결과를 돌려주는 대신 입력을 거부합니다.
참고 자료
- Knuth DE. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, 3rd edition, Addison-Wesley, 1997 — positional number systems and radix conversion.
- IEEE Std 754-2019. IEEE Standard for Floating-Point Arithmetic — double-precision format and exact-integer range.