← 모든 도구

ASCII 코드표

10진수, 16진수, 2진수 코드가 포함된 완전한 ASCII 코드표를 확인하세요. 제어 문자와 출력 가능 문자의 차이, ASCII·Unicode·UTF-8의 관계도 설명합니다.
DecHexOctChar이름

ASCII 표: 128개의 숫자가 텍스트의 기반이 된 과정

ASCII는 American Standard Code for Information Interchange의 약자로, 컴퓨터들이 문자가 무엇인지 합의하도록 만들어 준 인코딩입니다. 1963년에 발표되어 1960년대에 걸쳐 다듬어진 이 표준은 영어 텍스트의 기본 문자, 숫자, 그리고 몇 가지 제어 신호를 기계가 저장하고 전송할 수 있는 숫자에 대응시킵니다. 대문자 A 키를 누르면 컴퓨터는 모양을 저장하는 것이 아니라 숫자 65를 저장합니다. ASCII는 그 숫자가 어디로 전달되든 A를 의미하도록 만드는 조회 표입니다.

이 표준은 놀랍도록 간결합니다. ASCII는 7비트 코드로, 각 문자가 7개의 이진 자리에 들어가며 전체 목록은 정확히 2의 7제곱, 즉 0부터 127까지 번호가 매겨진 128개의 코드 포인트로 구성됩니다. 이 경제성은 의도적이었습니다. 초기 텔레타이프와 모뎀은 느리고 비쌌기 때문에 모든 비트가 중요했습니다. 7비트는 대소문자 라틴 문자, 열 개의 숫자, 일반적인 구두점, 장치들을 동기화하는 신호 문자를 모두 담기에 충분했으며, 많은 시스템이 오류 검사에 사용한 비트 하나가 남았습니다.

청록색과 금색 빛이 있는 어두운 인디고의 정렬된 문자 셀의 추상적인 빛나는 격자
ASCII는 모든 문자를 128개의 번호가 매겨진 셀의 고정된 정렬 격자로 배열합니다.

두 부분: 제어 문자와 인쇄 가능 문자

표는 두 영역으로 깔끔하게 나뉩니다. 코드 0~31과 코드 127(DEL)은 제어 문자입니다. 이것들은 화면에 글리프를 출력하지 않습니다. 대신 장치에게 무언가를 하도록 지시합니다. 코드 9는 수평 탭, 코드 10은 새 줄로 이동하는 줄 바꿈, 코드 13은 캐리지 리턴, 코드 7은 한때 터미널을 청각적으로 울리게 했던 벨입니다. 이런 신호 코드는 총 33개이며, 많은 것들이 이제 역사적 유물이지만 줄 바꿈, 캐리지 리턴, 탭은 오늘날에도 텍스트 파일 서식에 필수적입니다.

코드 32~126은 인쇄 가능 문자로 총 95개입니다. 코드 32는 공백으로, 아무것도 보이지 않지만 커서를 전진시키기 때문에 인쇄 가능으로 분류됩니다. 그 다음 구두점과 기호, 코드 48~57의 숫자 0~9, 65~90의 대문자 A~Z, 97~122의 소문자 a~z가 이어집니다. 이 배치에서 깔끔한 속성이 나타납니다. 같은 문자의 소문자와 대문자는 정확히 32만큼 차이가 나므로 하나의 비트를 뒤집으면 대소문자가 변환됩니다. 이러한 규칙성은 우연이 아니라 정렬과 대소문자 변환이 단순한 산술로 이루어질 수 있도록 설계된 것입니다.

10진수, 16진수, 2진수: 하나의 숫자를 보는 세 가지 관점

모든 ASCII 코드는 단순히 숫자이며 세 가지 방식으로 표기됩니다. 10진수는 일상적인 10진 형식으로 A는 65입니다. 16진수는 프로그래머가 선호하는 형식으로 바이트에 맞게 배열됩니다. A는 0x41이며 인쇄 가능 범위는 0x20~0x7E입니다. 2진수는 하드웨어가 실제로 저장하는 형식으로 A는 7비트에 걸쳐 1000001입니다. 같은 문자, 세 가지 표기법. 메모리 덤프나 네트워크 트래픽을 읽을 때 이 사이를 유창하게 오가는 것이 핵심 기술입니다. 이런 변환을 자주 다룬다면 speedor.net의 참조 표에서 매핑을 클릭 한 번으로 확인할 수 있습니다.

네이비 배경의 빛나는 글리프 슬롯으로 흐르는 이진수 및 16진수 빛의 스트림
2진수와 16진수는 단순히 같은 ASCII 코드 포인트를 표현하는 다른 진법입니다.

ASCII가 여전히 중요한 이유

ASCII를 역사 속으로 분류하는 것은 잘못입니다. 코드를 다루는 사람이라면 누구나 매일의 작업에서 ASCII와 맞닥뜨립니다. 프로그래밍 언어는 문자열 리터럴, 소스 파일, 프로토콜 키워드를 바이트 수준에서 ASCII로 처리합니다. HTTP 헤더, SMTP, 많은 설정 형식과 같은 네트워크 프로토콜은 사람이 읽을 수 있도록 ASCII로 정의됩니다. 문자열이 손상된 것처럼 보일 때 개발자는 16진수 뷰어로 원시 바이트를 ASCII 표와 대조해 숨겨진 제어 문자나 잘못된 줄 끝을 찾아냅니다. URL 인코딩, Base64, 이스케이프 시퀀스 모두 ASCII 값을 기반으로 합니다. 인코딩 버그를 디버깅하는 사람에게는 개발자 도구 옆에 빠른 참조 표가 있으면 미스터리한 바이트가 명확한 답으로 변합니다.

ASCII에서 Unicode와 UTF-8으로

ASCII는 영어를 완벽하게 다뤘지만 그 외는 거의 지원하지 않았습니다. 128자 제한으로는 악센트 문자, 키릴 문자, 한자, 아랍 문자, 이모지를 담을 수 없습니다. Unicode는 모든 문자 체계의 모든 문자에 코드 포인트라 불리는 고유 번호를 부여해 이 문제를 해결했으며, 현재 10만 개가 훨씬 넘습니다. 중요한 점은 Unicode가 문자 목록이지 저장 형식이 아니므로 코드 포인트를 바이트로 변환하는 인코딩이 필요하다는 것입니다.

UTF-8이 바로 그 인코딩이며, ASCII가 사라지지 않은 이유이기도 합니다. UTF-8은 문자당 1~4바이트를 사용하며, ASCII 범위 전체인 코드 포인트 0~127을 일반 ASCII와 동일한 단일 바이트에 저장하도록 설계되었습니다. 따라서 UTF-8은 완벽하게 하위 호환됩니다. 유효한 ASCII 파일은 이미 유효한 UTF-8 파일입니다. 127 이상의 문자는 추가 바이트를 사용합니다. 이 우아한 호환성이 UTF-8이 이제 웹의 압도적 대다수를 지원하는 큰 이유입니다. 요약하면, ASCII는 128자로 이루어진 원래의 핵심이고, Unicode는 그것을 포함하는 보편적인 목록이며, UTF-8은 ASCII 텍스트를 바이트 단위로 그대로 유지하면서 둘 다 전달하는 인코딩입니다.

자주 묻는 질문

ASCII 표에는 몇 개의 문자가 있나요?

표준 ASCII는 0~127로 번호가 매겨진 128개의 문자를 정의합니다. 이 중 95개는 공백을 포함한 인쇄 가능 문자이고, 33개는 글리프를 출력하지 않고 장치에 신호를 보내는 제어 문자입니다.

제어 문자와 인쇄 가능 문자의 차이는 무엇인가요?

코드 0~31과 127의 제어 문자는 장치에게 줄 바꿈이나 탭 같은 동작을 지시하며 눈에 보이는 글리프를 생성하지 않습니다. 코드 32~126의 인쇄 가능 문자는 화면에 실제로 보이는 문자, 숫자, 구두점, 공백입니다.

왜 ASCII는 7비트 코드인가요?

7비트는 정확히 128가지 조합을 제공하며, 이는 느린 초기 하드웨어에서 대역폭을 절약하면서 영어 문자, 숫자, 구두점, 제어 신호를 모두 담기에 충분했습니다. 바이트의 여덟 번째 비트는 종종 패리티 오류 검사용으로 예약되었습니다.

문자 A의 ASCII 코드는 무엇인가요?

대문자 A는 10진수 65, 16진수 0x41, 2진수 1000001입니다. 소문자 a는 10진수 97로 정확히 32 더 높으며, 이는 단순한 산술로 대소문자 변환을 가능하게 하는 내장 패턴입니다.

ASCII와 Unicode는 같은 것인가요?

아닙니다. ASCII는 128자를 다루는 반면, Unicode는 모든 문자 체계에 걸쳐 10만 개 이상의 문자를 목록화합니다. ASCII는 사실상 Unicode의 처음 128개 코드 포인트이므로 더 큰 표준의 작은 부분 집합입니다.

UTF-8과 ASCII는 어떤 관계인가요?

UTF-8은 코드 포인트 0~127을 ASCII와 동일한 단일 바이트에 저장하는 Unicode 인코딩입니다. 이로 인해 모든 ASCII 파일이 유효한 UTF-8 파일이 되며, UTF-8이 하위 호환되고 현대 웹을 지배하는 이유입니다.