2진수, 8진수, 10진수, 16진수 간의 변환을 무료로 수행하세요. 프로그래밍, 네트워킹, 디지털 시스템에 필수적인 도구입니다.
| 10진수 | 2진수 | 8진수 | 16진수 |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
진법(Numeral System)은 숫자를 표현하는 방법입니다. 2진법은 0과 1만 사용하고, 8진법은 0-7, 10진법은 0-9, 16진법은 0-9와 A-F를 사용합니다. 컴퓨터는 내부적으로 2진수를 사용하지만, 사람이 읽기 쉽도록 16진수나 10진수로 변환하여 표시합니다.
N진법을 10진법으로 변환: 각 자릿수에 밑수의 거듭제곱을 곱하여 합산합니다. 예: (1011)₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 11
10진법을 N진법으로 변환: 10진수를 목표 진법으로 반복적으로 나누고 나머지를 역순으로 읽습니다.
16진수 한 자리는 정확히 2진수 4자리를 나타냅니다. 예를 들어 F(16진수) = 1111(2진수), A(16진수) = 1010(2진수)입니다. 이런 관계 때문에 프로그래머들은 긴 2진수를 표현할 때 16진수를 선호합니다.
8진수는 Unix/Linux 파일 권한 시스템에서 주로 사용됩니다 (예: chmod 755). 과거 8비트가 아닌 시스템에서 널리 사용되었지만, 현재는 16진수가 더 일반적입니다. 3비트씩 묶어서 표현하기 편리합니다.
A부터 F까지는 10진수 10부터 15를 나타냅니다. A=10, B=11, C=12, D=13, E=14, F=15입니다. 16진법은 0-15까지 필요하므로 숫자 0-9만으로는 부족하여 알파벳을 사용합니다.
컴퓨터의 트랜지스터는 ON(1) 또는 OFF(0) 두 가지 상태만 가질 수 있기 때문입니다. 이런 디지털 회로의 특성상 2진법이 가장 자연스럽고 안정적입니다. 모든 데이터와 명령어는 궁극적으로 0과 1의 조합으로 표현됩니다.
컴퓨터에서 음수는 2의 보수(Two's Complement) 방식으로 표현합니다. 최상위 비트(MSB)가 부호 비트로 사용되며, 1이면 음수입니다. 예를 들어 8비트에서 -1은 11111111로 표현됩니다. 이 방식은 덧셈 회로를 단순화하는 장점이 있습니다.
비트(bit)는 0 또는 1 하나를 의미하며, 데이터의 가장 작은 단위입니다. 바이트(byte)는 8비트의 묶음으로, 하나의 문자를 표현하는 기본 단위입니다. 1바이트 = 8비트 = 2개의 16진수 숫자로 표현됩니다.
이 진법 변환기는 양의 정수만 지원합니다. 음수나 부동소수점 변환이 필요한 경우 IEEE 754 표준을 참고하세요. 매우 큰 숫자는 브라우저의 숫자 정밀도 한계로 인해 정확하지 않을 수 있습니다. 프로그래밍에서 사용할 때는 언어별 정수 타입의 최대값을 확인하세요.
진법(Numeral System)이란 숫자를 표현하는 규칙 체계로, '밑수(Base)'에 따라 사용할 수 있는 숫자의 종류가 결정됩니다. 우리가 일상에서 사용하는 10진법은 0~9까지 10개의 숫자를 사용하며, 각 자릿수는 10의 거듭제곱을 나타냅니다. 컴퓨터는 전기 신호의 ON/OFF라는 두 가지 상태만 구분할 수 있기 때문에 내부적으로 2진법을 사용합니다. 모든 데이터, 프로그램, 색상, 음성 등은 궁극적으로 0과 1의 조합인 2진수로 저장되고 처리됩니다.
2진수(Binary)는 비트 연산, 플래그 설정, 네트워크 서브넷 마스크 계산에 필수적입니다. 16진수(Hexadecimal)는 4비트를 한 자리로 표현하여 긴 2진수를 간결하게 나타낼 수 있어 메모리 주소, CSS 컬러 코드(#FF5733), 해시값 표현에 광범위하게 사용됩니다. 8진수(Octal)는 Unix/Linux의 파일 권한 시스템(chmod 755)에서 주로 활용되며, 3비트씩 묶어서 표현하는 특성이 있습니다. 프로그래밍에서는 0b(2진수), 0o(8진수), 0x(16진수) 접두사로 각 진법을 표기합니다.
진법 변환은 컴퓨터 과학의 핵심 개념으로, CPU 아키텍처·메모리 관리·네트워크 프로토콜·암호화 등 거의 모든 분야에 적용됩니다. 예를 들어 IPv4 주소 192.168.1.1을 서브넷 마스크와 AND 연산하려면 10진수를 2진수로 변환해야 합니다. RGB 색상 값을 16진수 CSS 코드로 변환하거나, 유니코드 문자의 코드 포인트를 16진수로 표현하는 것도 일상적인 진법 변환의 예입니다. 진법에 대한 이해는 효율적인 코드 작성과 하드웨어 수준의 디버깅 능력을 키우는 기초가 됩니다.