본문으로 건너뛰기
Case Converter Online
ko

16진수 텍스트 변환기

16진수 바이트를 붙여넣으면 텍스트로 읽고, 텍스트를 입력하면 16진수 코드를 보여 줍니다. 공백, 0x 접두사, \x 이스케이프를 모두 알아서 처리합니다.

양방향으로 작동합니다. 디코딩할 때 16진수 속의 공백, 0x, \x, 콜론, 쉼표는 무시합니다.

16진수란

16진수(헥스, hexadecimal)는 16을 밑으로 하는 수 체계입니다. 0부터 9까지의 숫자와 A부터 F까지의 글자를 쓰며, A는 10, F는 15를 뜻합니다. 16진수 두 자리로 0부터 255까지, 즉 정확히 1바이트를 나타낼 수 있습니다. 그래서 원시 데이터를 짧고 읽기 쉽게 보여 주는 데 16진수를 쓰고, 16진수 텍스트 변환은 그 바이트가 무슨 글자인지 확인하는 가장 빠른 방법입니다.

16진수는 메모리 덤프, 네트워크 패킷 캡처, 파일 시그니처, 색상 코드, 소스 코드의 이스케이프 시퀀스, 오류 로그에서 볼 수 있습니다. 이런 바이트를 텍스트로 되돌리면 데이터가 무슨 내용인지 알 수 있는 경우가 많습니다.

16진수 텍스트 변환기 사용 방법

16진수를 텍스트로. 왼쪽 16진수 입력란에 헥스 값을 붙여넣습니다. 오른쪽 텍스트 입력란에 디코딩된 텍스트가 나타납니다. 흔히 쓰는 구분 기호는 무시하므로 다음 형식을 그대로 붙여넣어도 됩니다.

  • 공백으로 나눈 바이트: 48 65 6c 6c 6f
  • 이어 붙인 긴 문자열: 48656c6c6f
  • C 스타일 접두사: 0x48 0x65 0x6c
  • 이스케이프 시퀀스: \x48\x65\x6c
  • 콜론이나 쉼표로 나눈 바이트: 48:65:6c:6c:6f

텍스트를 16진수로. 오른쪽 텍스트 입력란에 입력하면 왼쪽에 16진수가 나타납니다.

16진수 형식에서 16진수를 쓰는 방식을 고릅니다.

  • 공백 구분: 48 65 6c: 읽고 비교할 때
  • 붙여 쓰기: 48656c: 짧게 저장할 때, 해시 같은 문자열
  • 접두사: 0x48 0x65: C, C++ 같은 언어의 코드
  • 이스케이프: \x48\x65: Python, JavaScript, 셸 스크립트의 문자열 리터럴

A~F 대문자를 켜면 글자를 대문자로 씁니다. 복사는 각 입력란의 내용을 가져가고, 지우기는 두 입력란을 모두 비웁니다.

작동 원리

디코딩할 때는 구분 기호를 없애고, 16진수 숫자만 남았는지와 자릿수가 짝수인지 확인한 다음 두 자리씩 바이트 하나로 읽습니다. 그 바이트를 UTF-8 텍스트로 디코딩합니다. 인코딩은 반대입니다. 텍스트를 UTF-8 바이트로 바꾸고, 바이트마다 16진수 두 자리로 씁니다.

16진수 한 자리는 4비트를 나타냅니다. 바이트 48은 4 × 16 + 8 = 72이고, 이는 대문자 H의 코드입니다.

한글 음절은 UTF-8에서 한 글자가 3바이트이므로 16진수로는 여섯 자리, 바이트 세 개가 됩니다. 예를 들어 한은 ed 95 9c입니다.

예시

16진수 텍스트
41 A
48 69 21 Hi!
48 65 6c 6c 6f Hello
48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21 Hello, World!
63 61 66 c3 a9 café
e2 82 ac €
ed 95 9c ea b8 80 한글

같은 텍스트를 각 형식으로 쓴 결과입니다.

형식 café
공백 구분 63 61 66 c3 a9
붙여 쓰기, 대문자 636166C3A9
접두사 0x63 0x61 0x66 0xc3 0xa9
이스케이프 \x63\x61\x66\xc3\xa9

자주 보는 16진수 값

16진수 문자 16진수 문자
20 공백 30 0
0a 줄바꿈 41 A
0d 캐리지 리턴 61 a
09 탭 7e ~

팁과 한계

  • 이상한 결과가 나오면 대개 텍스트가 아닌 데이터입니다. 이미지, 압축 파일, 암호화된 데이터는 낯선 기호와 대체 문자로 바뀝니다. 정상적인 결과입니다.
  • 숫자는 바이트 순서를 확인하세요. 이 도구는 주어진 순서대로 바이트를 읽습니다. 메모리 덤프 속 여러 바이트짜리 숫자는 리틀 엔디언으로 저장되는 경우가 많으니 오른쪽에서 왼쪽으로 읽으세요.
  • 16진수 색상 코드는 텍스트가 아닙니다. #ff8800은 글자가 아니라 빨강, 초록, 파랑의 세기를 나타냅니다.
  • 16진수는 암호화가 아닙니다. 바이트를 다른 방식으로 적은 것일 뿐입니다.
  • EUC-KR 바이트는 깨져 보입니다. 이 도구는 UTF-8로만 디코딩합니다. 예전 한국어 인코딩인 EUC-KR(CP949)의 16진수를 붙여넣으면 한글 대신 대체 문자(�)나 엉뚱한 문자가 나옵니다. 예를 들어 EUC-KR로 저장된 한글의 바이트 c7 d1 b1 db는 �ѱ�로 디코딩됩니다.

다른 방법으로 16진수 변환하기

명령줄. Linux와 macOS에서는 xxd -p가 파일을 일반 16진수로 바꾸고, xxd -r -p가 다시 되돌립니다. echo -n Hello | xxd -p는 48656c6c6f를 출력합니다.

Python. bytes.fromhex('48656c6c6f').decode()는 Hello를, 'Hello'.encode().hex()는 48656c6c6f를 돌려줍니다.

JavaScript (Node). Buffer.from('48656c6c6f', 'hex').toString()은 Hello를 돌려줍니다.

Excel. =CHAR(HEX2DEC("48"))는 ASCII 바이트 하나에 대해 H를 돌려줍니다. 반대로는 =DEC2HEX(72)를 씁니다.

관련 도구

같은 바이트를 0과 1로 보려면 2진수 텍스트 변환기를 쓰세요. UTF-8 인코딩 도구는 문자마다 코드 포인트와 바이트를 보여 줍니다. 데이터가 16진수가 아니라 Base64라면 Base64 디코더를 사용해 보세요.

16진수 텍스트 변환 자주 묻는 질문

16진수를 텍스트로 바꾸려면 어떻게 하나요?

왼쪽 16진수 입력란에 헥스 값을 붙여넣으면 오른쪽에 바로 텍스트가 나타납니다. 48 65 6c 6c 6f, 48656c6c6f, 0x48 0x65 0x6c 0x6c 0x6f는 모두 Hello로 디코딩됩니다.

자릿수가 홀수라는 오류가 나는 이유는 무엇인가요?

모든 바이트는 정확히 16진수 두 자리로 쓰므로, 구분 기호를 빼면 올바른 16진수의 자릿수는 항상 짝수입니다. 붙여넣은 값 어딘가에 숫자가 하나 빠졌거나 더 들어간 것이 흔한 원인입니다. 한 자리 값은 a 대신 0a처럼 앞에 0을 붙여 써야 합니다.

결과는 ASCII인가요, UTF-8인가요?

ASCII를 포함하는 UTF-8입니다. 일반 영어 텍스트는 두 방식의 16진수가 같습니다. ASCII 밖의 문자는 1바이트보다 많이 쓰므로 é는 c3 a9, 유로 기호는 e2 82 ac, 한글 ‘한’은 ed 95 9c입니다.

16진수에서 대소문자가 중요한가요?

아닙니다. 4F와 4f는 같은 바이트입니다. 붙여넣을 곳에서 대문자를 요구한다면 A~F 대문자 옵션을 켜세요.

코드와 데이터 도구 더 보기

전체 도구 보기