MCP로 연결 →

계산 입력

공식

광고

결과

16진수 (base 16)
D6
0xD6
2진수 입력 11010110
10진수 값 214
비트 수 8

2진수 16진수 변환기란?

이 도구는 2진수(base 2, 0과 1만 사용)로 작성된 숫자를 16진수(base 16, 0~9와 A~F 사용)로 변환합니다. 16진수는 2진 데이터를 훨씬 짧게 표현할 수 있어 프로그래밍, 메모리 주소, 색상 코드, 디버깅 등에서 폭넓게 쓰입니다. 4비트씩 묶으면 정확히 16진수 한 자리가 되기 때문입니다.

사용 방법

입력란에 11010110 같은 2진수를 입력하거나 붙여넣고 변환하세요. 공백이나 불필요한 문자는 자동으로 무시되므로 1101 0110처럼 띄어 써도 됩니다. 결과로 16진수 값, 이에 해당하는 10진수 값, 그리고 비트 수를 함께 확인할 수 있습니다.

변환 원리

변환의 핵심은 \(16 = 2^4\) 라는 사실입니다. 알고리즘은 먼저 2진수 문자열의 길이가 4의 배수가 될 때까지 왼쪽을 0으로 채웁니다. 그런 다음 오른쪽부터 4비트씩 묶어 니블(nibble)이라는 그룹으로 나눕니다. 각 니블은 다음과 같이 계산되어 0부터 15까지의 값을 가지며, 이 값은 16진수 한 자리(0~9 다음 A~F)에 대응됩니다.

$$8\cdot b_3 + 4\cdot b_2 + 2\cdot b_1 + b_0$$

이렇게 얻은 자릿수를 이어 붙이면 16진수 결과가 완성됩니다. 전체 변환은 다음과 같이 표현할 수 있습니다.

$$\text{Hex}_{16} = \sum_{i=0}^{n-1} d_i \cdot 16^{i}, \quad d_i \in \{0\text{–}9,\,A\text{–}F\} \;\leftarrow\; \text{Binary (base 2)}$$
광고
니블로 묶인 2진수 자릿수가 각각 하나의 16진수 자릿수에 대응
4비트(니블)마다 하나의 16진수 자릿수에 대응합니다.

예제로 보기

11010110을 변환해 봅시다. 니블로 나누면 11010110이 됩니다. 첫 번째는 \(8+4+0+1 = 13 = D\), 두 번째는 \(0+4+2+0 = 6\)입니다. 따라서 16진수 결과는 D6이며, 이는 10진수로 214입니다.

이진 니블에서 16진 자릿수 조회 테이블

이진수를 16진수로 변환하는 가장 빠른 방법은 비트를 4개 단위의 그룹으로 나누고(이를 니블이라 함), 각 니블을 하나의 16진 자릿수로 바꾸는 것입니다. \(2^4 = 16\)이므로, 모든 4비트 패턴은 16개의 16진 자릿수 중 정확히 하나에 대응됩니다. 아래 표를 외우거나 참조하면 나눗셈 없이 니블 단위로 임의의 이진수를 변환할 수 있습니다.

4비트 이진(니블) 10진(10진법) 16진 자릿수(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

실제 예: 바이트 1101011011010110으로 나뉩니다. 표에 따르면 이들은 D6에 대응되어 16진 값 D6을 얻으며, 이는 10진법 214와 같습니다. 이진수의 길이가 4의 배수가 아니면, 그룹을 나누기 전에 왼쪽에 앞의 0을 붙여 채웁니다(예: 1011010010 11012D가 됨).

광고

주요 용어

비트(Bit)
디지털 정보의 가장 작은 단위로, 0 또는 1의 단일 이진 값을 보유합니다. 이 단어는 "이진 자릿수(binary digit)"의 축약형입니다.
니블(Nibble)
4개의 비트로 이루어진 그룹입니다. 4개의 비트는 \(2^4 = 16\)가지의 가능한 값을 나타내므로, 하나의 니블은 정확히 하나의 16진 자릿수에 대응됩니다. 이것이 이진에서 16진으로의 변환을 매우 직접적으로 만드는 이유입니다.
바이트(Byte)
8개의 비트(2개의 니블)로 이루어진 그룹입니다. 1바이트는 \(2^8 = 256\)가지의 가능한 값을 보유하며, 정확히 2개의 16진 자릿수로 표현됩니다. 예: 11111111 = FF = 255.
기수 / 진법
위치 기수법 체계가 사용하는 서로 다른 자릿수 기호의 개수이며, 자리값 사이의 곱셈자입니다. 이진은 기수 2, 10진은 기수 10, 16진은 기수 16입니다. 기수 \(b\)에서 위치 \(i\)(오른쪽에서 0부터 시작)의 자릿수는 \(b^{i}\)의 가중치를 가집니다.
이진(기수 2)
0과 1의 자릿수만 사용하는 수 체계로, 각 자리는 2의 거듭제곱의 값을 가집니다. 이는 디지털 전자장치의 온/오프 상태를 반영하며, 컴퓨터의 고유 언어를 만듭니다.
10진(기수 10)
0부터 9까지의 자릿수를 사용하는 일상적인 수 체계로, 각 자리는 10의 거듭제곱의 값을 가집니다. 이진 및 16진 값을 비교할 때 공통 기준점 역할을 합니다.
16진(기수 16)
16개의 자릿수를 사용하는 수 체계입니다: 0–9 다음에 A–F (A=10, B=11, C=12, D=13, E=14, F=15). 한 개의 16진 자릿수가 하나의 니블에 대응되므로, 긴 이진 문자열을 사람이 읽고 쓰기 훨씬 더 쉽게 만듭니다.
MSB / LSB
최상위 비트(Most Significant Bit)는 가장 왼쪽의 비트로, 가장 큰 자리값(2의 가장 높은 거듭제곱)을 나타냅니다. 최하위 비트(Least Significant Bit)는 가장 오른쪽의 비트로, 가장 작은 값(\(2^0 = 1\))을 나타냅니다. 같은 "최상위/최하위" 개념은 16진의 전체 자릿수에도 적용됩니다.
0x 접두사
값이 16진법으로 표현되고 있음을 나타내기 위해 숫자 앞에 쓰는 관례적 표기입니다. 예를 들어 0xD6은 16진 값 D6(10진 214)을 의미하며, 다른 진법의 "D6" 자릿수가 아닙니다. C, Java, Python 같은 프로그래밍 언어에서 널리 사용됩니다. 이진은 비슷하게 0b로 접두사가 붙는 경우가 많습니다.

자주 묻는 질문

비트 수가 4로 나누어떨어지지 않으면 어떻게 되나요? 변환기가 자동으로 왼쪽을 0으로 채워 줍니다. 예를 들어 10101100101 0110 = 56이 됩니다.

앞에 붙은 0(선행 0)도 처리하나요? 네. 최종 16진수 결과에서는 선행 0이 제거되지만, 값 자체는 변하지 않습니다.

결과는 대문자로 나오나요? 16진수의 A~F는 관례에 따라 대문자로 표시되며, 명확하게 구분하도록 앞에 0x 접두사가 붙습니다.

최종 업데이트: