10진수 → 16진수: 프로그래머가 실제로 읽는 축약형
이 변환이 하는 일
10진수를 0부터 9, A부터 F까지 열여섯 개의 숫자로 다시 씁니다. 16진수는 다른 종류의 숫자가 아니라 같은 비트를 더 짧게 적는 방법입니다. 한 자리가 2진수 네 자리를 정확히 덮으므로 32비트 값이 서른두 글자 대신 여덟 글자로 끝납니다. 이 압축이 이 표기가 살아남은 이유 전부입니다.
A부터 F라는 글자가 생긴 이유
기수 16은 서로 다른 숫자 기호 열여섯 개가 필요한데 흔히 쓰는 기호는 열 개뿐이라 알파벳 앞 여섯 글자가 빈자리를 채웁니다. A는 10, B는 11이고 F가 15입니다. 이 글자들은 약어가 아니라 숫자이므로 FF는 열다섯이라는 단어와 아무 관계가 없고 15 곱하기 16 더하기 15, 즉 255를 뜻합니다.
10진수 → 16진수 변환표
색상 작업과 주소 지정, 권한 마스크에서 늘 등장하는 10진수 값과 그 16진수 표기입니다. 255와 65535 같은 값은 1바이트와 2바이트 필드의 경계를 표시합니다.
| 10진수 | 16진수 |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 7 | 7 |
| 8 | 8 |
| 10 | A |
| 15 | F |
| 16 | 10 |
| 31 | 1F |
| 64 | 40 |
| 100 | 64 |
| 127 | 7F |
| 200 | C8 |
| 255 | FF |
| 1000 | 3E8 |
색상 코드와 메모리 주소
#1E90FF 같은 웹 색상은 빨강, 초록, 파랑 세 바이트를 여섯 자리 16진수로 적은 것이고 두 자리씩이 0부터 255까지의 채널 하나입니다. 같은 표기가 메모리 주소에도 나타나며 0x7FFE는 10진수 형태보다 훨씬 빨리 비교됩니다. 두 경우 모두 자릿수가 바이트 경계와 맞아떨어지기 때문에 16진수가 이깁니다.
대소문자를 맞춰 쓰기
이 변환기는 C 코드와 데이터시트, 대부분의 문서 관례를 따라 대문자로 출력합니다. 소문자도 똑같이 유효하고 URL이나 일부 언어 리터럴에서 쓰이며 입력란은 둘 다 받습니다. 한 값 안에서 섞어 써도 되지만 읽기 나쁘므로 하나를 골라 유지하세요.
자주 묻는 질문
계산기 없이 10진수를 16진수로 바꾸려면 어떻게 하나요?
16으로 나눈 나머지를 16진수 한 자리로 적고 몫이 0이 될 때까지 반복한 뒤 마지막 자리부터 읽습니다. 255는 255 나누기 16이 몫 15 나머지 15이고 15 나누기 16은 몫 0 나머지 15라서 FF가 됩니다. 9를 넘는 나머지는 A부터 F로 적습니다.
2진수 대신 16진수를 쓰는 이유는 무엇인가요?
2진수 네 자리가 16진수 한 자리에 정확히 대응해서 계산 없이 그대로 치환되기 때문입니다. 16진수는 같은 비트를 사람이 읽기 좋게 짧게 쓴 것이고, 디버거와 디스어셈블러, 네트워크 도구가 모두 16진수를 찾는 이유도 여기에 있습니다.
0x 접두사는 무슨 뜻인가요?
C와 여러 언어에서 뒤에 오는 글자는 16진수라고 알리는 표시입니다. 그래서 0x20은 20이 아니라 32입니다. 이 변환기는 입력에서 0x 접두사를 받아들이고 출력에는 붙이지 않습니다. 어느 기수인지 이미 이 페이지에서 분명하기 때문입니다.
64비트 값에는 16진수 자리가 몇 개 필요한가요?
열여섯 자리이고 이 변환기는 그것을 정확히 처리합니다. 64비트 수는 부동소수점이 정확히 표현하는 범위를 넘을 수 있어서, 일반 수로 계산하는 도구는 FFFFFFFFFFFFFFFF 같은 값에 그럴듯하지만 틀린 답을 내놓습니다. 정수 연산으로 처리하면 그런 일이 생기지 않습니다.
16진수 자리는 대소문자를 구분하나요?
구분하지 않습니다. FF와 ff는 같은 값이고 입력란은 둘 다 받습니다. 출력은 대부분의 소스 코드와 문서, 하드웨어 매뉴얼 관례에 맞춰 대문자입니다.