텍스트 16진수 변환기란?
텍스트 16진수 변환기는 문자열의 각 문자를 숫자 코드 포인트로 바꾼 뒤, 그 값을 16진수(16진법)로 표시해 주는 도구입니다. ASCII를 16진수로 인코딩하는 이 방식은 컴퓨팅 전반에서 표준으로 쓰입니다. 네트워크 패킷을 분석하거나 바이너리 파일을 디버깅할 때는 물론, 컬러 코드·이스케이프 시퀀스·저수준 데이터 포맷을 작성할 때도 활용되죠. 1바이트(0~255)가 정확히 2자리 16진수에 대응하기 때문에, 결과물은 간결하면서도 모호함이 없습니다.
사용 방법
입력란에 텍스트를 입력하거나 붙여넣고, 16진수 바이트를 어떻게 구분할지(구분 없음, 공백, 콜론, 하이픈) 선택한 뒤 결과를 확인하세요. '구분 없음'은 연속된 문자열로 출력되어 코드에 그대로 복사·붙여넣기 하기에 좋고, 공백이나 콜론으로 구분하면 바이트 단위로 한눈에 읽기 편합니다.
변환 원리
각 문자 \(c\)에 대해 숫자 코드 포인트인 ord(c)를 구합니다. 일반적인 영어 알파벳, 숫자, 문장 부호는 0~127 범위의 ASCII에 속합니다. 이 숫자를 16진법으로 변환한 다음, 2자리가 되도록 앞을 0으로 채웁니다(이른바 02x 형식). 이렇게 만든 2자리 블록들을 모두 이어 붙이고, 사이사이에 선택한 구분자를 넣어 줍니다.
$$\text{Hex} = \underset{c\,\in\,\text{Text}}{\Large\Vert}\; \text{pad}_2\!\left(\text{hex}\big(\text{code}(c)\big)\right)\;\bowtie\;\text{Separator}$$
실제 예시
Hi라는 단어를 예로 들어 보겠습니다. 문자 "H"의 코드는 72이고, 이는 \(\text{0x48}\)입니다. 문자 "i"의 코드는 105로 \(\text{0x69}\)에 해당하죠. 따라서 "Hi"는 구분자가 없으면 4869가 되고, 공백으로 구분하면 48 69가 됩니다.
ASCII에서 16진수 참조표
각 인쇄 가능한 ASCII 문자는 00에서 FF까지의 2자리 16진수 코드로 표현되는 단일 바이트에 매핑됩니다. 16진수 값은 문자의 10진수 ASCII 코드를 16진법으로 변환한 것과 같습니다. 예를 들어, 문자 A는 10진수 코드 65를 가지며, \(65 = 4 \times 16 + 1\)이므로 16진수 코드는 41입니다. 공백 구분 기호가 있는 단어 Hi를 변환하면 48 69가 됩니다.
숫자 0–9
| 문자 | 10진수 | 16진수 |
|---|---|---|
| 0 | 48 | 30 |
| 1 | 49 | 31 |
| 2 | 50 | 32 |
| 3 | 51 | 33 |
| 4 | 52 | 34 |
| 5 | 53 | 35 |
| 6 | 54 | 36 |
| 7 | 55 | 37 |
| 8 | 56 | 38 |
| 9 | 57 | 39 |
대문자 A–Z
| 문자 | 10진 | 16진 | 문자 | 10진 | 16진 |
|---|---|---|---|---|---|
| A | 65 | 41 | N | 78 | 4E |
| B | 66 | 42 | O | 79 | 4F |
| C | 67 | 43 | P | 80 | 50 |
| D | 68 | 44 | Q | 81 | 51 |
| E | 69 | 45 | R | 82 | 52 |
| F | 70 | 46 | S | 83 | 53 |
| G | 71 | 47 | T | 84 | 54 |
| H | 72 | 48 | U | 85 | 55 |
| I | 73 | 49 | V | 86 | 56 |
| J | 74 | 4A | W | 87 | 57 |
| K | 75 | 4B | X | 88 | 58 |
| L | 76 | 4C | Y | 89 | 59 |
| M | 77 | 4D | Z | 90 | 5A |
소문자 a–z
| 문자 | 10진 | 16진 | 문자 | 10진 | 16진 |
|---|---|---|---|---|---|
| a | 97 | 61 | n | 110 | 6E |
| b | 98 | 62 | o | 111 | 6F |
| c | 99 | 63 | p | 112 | 70 |
| d | 100 | 64 | q | 113 | 71 |
| e | 101 | 65 | r | 114 | 72 |
| f | 102 | 66 | s | 115 | 73 |
| g | 103 | 67 | t | 116 | 74 |
| h | 104 | 68 | u | 117 | 75 |
| i | 105 | 69 | v | 118 | 76 |
| j | 106 | 6A | w | 119 | 77 |
| k | 107 | 6B | x | 120 | 78 |
| l | 108 | 6C | y | 121 | 79 |
| m | 109 | 6D | z | 122 | 7A |
공백 & 일반 구두점
| 문자 | 이름 | 10진수 | 16진수 |
|---|---|---|---|
| (공백) | 공백 | 32 | 20 |
| ! | 느낌표 | 33 | 21 |
| # | 숫자 기호 | 35 | 23 |
| ( | 왼쪽 괄호 | 40 | 28 |
| ) | 오른쪽 괄호 | 41 | 29 |
| , | 쉼표 | 44 | 2C |
| - | 하이픈-마이너스 | 45 | 2D |
| . | 마침표 | 46 | 2E |
| : | 콜론 | 58 | 3A |
| @ | 앳 기호 | 64 | 40 |
자주 묻는 질문
대문자와 소문자를 다르게 처리하나요? 네, 서로 다른 ASCII 코드를 가집니다(A=\(\text{0x41}\), a=\(\text{0x61}\)). 그래서 16진수 결과도 달라집니다.
이모지나 악센트가 붙은 문자는 어떻게 되나요? 코드가 255를 넘는 문자는 1바이트보다 큰 코드 포인트를 사용하므로, 문자 하나당 2자리를 넘는 16진수가 나올 수 있습니다. 이 도구는 최소 2자리가 되도록 0으로 채워 줍니다.
거꾸로 되돌릴 수도 있나요? 가능합니다. 16진수를 두 자리씩 끊어 각각을 숫자로 변환한 뒤, 해당 문자에 대응시키면 16진수를 다시 텍스트로 디코딩할 수 있습니다.