2진수 16진수 변환기란?
이 도구는 0과 1만 사용하는 2진수(밑이 2)를 16진수(밑이 16) 값으로 변환합니다. 16진수는 컴퓨터 분야에서 널리 쓰이는데, 16진수 한 자리가 정확히 2진수 네 자리를 나타내기 때문입니다. 덕분에 길고 복잡한 2진수 문자열을 훨씬 짧고 읽기 쉽게 표현할 수 있습니다.
사용 방법
입력란에 11010110 같은 2진수를 입력하고 변환 버튼을 누르세요. 변환기는 0과 1이 아닌 불필요한 문자를 자동으로 걸러낸 뒤, 16진수 결과와 함께 참고용 10진수 값을 보여줍니다.
변환 원리
변환의 핵심은 \(16 = 2^4\)라는 관계입니다. 먼저 2진수 문자열의 길이가 4의 배수가 되도록 왼쪽에 0을 채웁니다(패딩). 그런 다음 오른쪽부터 4비트씩 묶어 니블(nibble)이라는 단위로 나눕니다. 각 니블은 0부터 15까지의 값을 가지며, 이 값은 16진수 한 자리에 그대로 대응됩니다. 0~9는 0~9로, 10~15는 A~F로 표현됩니다.
$$\text{Hex} = \sum_{i=0}^{n-1} b_i \cdot 2^{\,n-1-i} \;\longrightarrow\; \text{base-16}$$
예제로 살펴보기
11010110을 변환해 보겠습니다. 니블로 나누면 1101과 0110이 됩니다. 첫 번째 니블은 \(8+4+0+1 = 13 \to\) D, 두 번째 니블은 \(0+4+2+0 = 6 \to\) 6입니다. 따라서 16진수 결과는 D6이며, 이는 10진수로 214에 해당합니다.
2진 니블에서 16진 숫자 조회 테이블
16진법 변환이 가능한 이유는 정확히 4개의 2진 비트(1개의 니블)가 정확히 1개의 16진 숫자에 대응되기 때문입니다. 니블은 \(2^4 = 16\)개의 서로 다른 값을 나타낼 수 있으며, 16진법은 16개의 숫자(0–9 및 A–F)를 가지고 있으므로 일대일 대응입니다. 2진수를 변환하려면 오른쪽부터 4비트 그룹으로 나누고, 필요하면 맨 왼쪽 그룹을 앞의 0으로 채운 다음, 아래 테이블을 사용하여 각 니블을 16진 숫자로 바꾸면 됩니다.
| 4비트 2진수 | 10진수 | 16진 숫자 |
|---|---|---|
| 0000 | 0 | 0 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 8 | 8 |
| 1001 | 9 | 9 |
| 1010 | 10 | A |
| 1011 | 11 | B |
| 1100 | 12 | C |
| 1101 | 13 | D |
| 1110 | 14 | E |
| 1111 | 15 | F |
예를 들어, 2진수 1011 0110은 니블 1011과 0110으로 나뉘며, 이는 B와 6에 대응되어 16진 값 B6을 얻습니다. 같은 비트는 10진수로 182입니다.
주요 용어 설명
- 비트(Bit)
- 0 또는 1의 단일 2진 값을 가지는 가장 작은 디지털 정보 단위입니다. 비트(bit)라는 단어는 "이진 숫자(binary digit)"의 축약입니다.
- 니블(Nibble)
- 4개의 비트로 이루어진 그룹입니다. 니블이 \(2^4 = 16\)개의 가능한 값을 가지므로, 이는 정확히 1개의 16진 숫자에 대응됩니다. 이것이 2진에서 16진 변환을 4비트씩 수행하는 이유입니다. 2개의 니블이 1바이트(8비트)를 이룹니다.
- 2진법(2진 기수법)
- 0과 1 두 개의 기호만 사용하는 수 체계입니다. 각 자리는 2의 거듭제곱을 나타내므로, 값은 \(\sum b_i \cdot 2^{n-1-i}\)입니다. 이는 디지털 전자장치의 기본 언어입니다.
- 16진법(16진 기수법)
- 16개의 기호를 사용하는 수 체계입니다: 0–9는 0부터 9까지의 값을, A–F는 10부터 15까지의 값을 나타냅니다. 각 자리는 16의 거듭제곱을 나타냅니다. 16진법은 1개의 16진 숫자가 4비트를 대체하므로 2진수를 간단히 표기하는 방법입니다.
- 10진법(10진 기수법)
- 0–9 10개의 기호를 사용하는 일상적인 수 체계이며, 각 자리는 10의 거듭제곱을 나타냅니다. 변환 도구는 종종 친숙한 참조 포인트로 10진값을 보여줍니다.
- 최하위 비트(LSB)
- 2진수의 맨 오른쪽 비트로, 가장 작은 자릿값(\(2^0 = 1\))을 가집니다. 이를 변경하면 수를 가장 작은 양만큼 변경합니다.
- 최상위 비트(MSB)
- 2진수의 맨 왼쪽 비트로, 가장 큰 자릿값을 가집니다. 이를 변경하면 수의 크기에 가장 큰 영향을 미칩니다.
- 앞의 0으로 채우기
- 2진수의 왼쪽에 0을 추가하여 총 길이가 4의 배수가 되게 하므로, 이를 전체 니블로 나눌 수 있습니다. 예를 들어, 110110은 16진으로 매핑하기 전에 0011 0110으로 채워지며(3과 6, 즉 36). 앞의 0은 수치 값을 변경하지 않습니다.
자주 묻는 질문
왜 앞쪽에 0을 채우나요? 니블로 묶으려면 전체 비트 수가 4의 배수여야 합니다. 왼쪽에 0을 채워도 값은 바뀌지 않으면서, 깔끔하게 4비트 단위로 나눌 수 있습니다.
16진수 알파벳은 대소문자를 구분하나요? 아니요. A~F는 대문자든 소문자든 같은 값을 나타냅니다. 이 도구는 대문자로 결과를 출력합니다.
공백이나 다른 문자를 입력하면 어떻게 되나요? 0과 1이 아닌 문자는 모두 무시됩니다. 따라서 1101 0110은 11010110과 동일하게 변환됩니다.