1강
아스키 코드의 개념: 문자는 숫자다
공식
아스키 코드란?
컴퓨터는 글자도 결국 숫자로 저장합니다. 각 문자에 정해진 번호를 붙인 약속이
아스키 코드(ASCII) 입니다. 이걸 이용하면 문자를 숫자처럼 계산할 수 있습니다.
1. 알아 둘 핵심 코드
| 문자 | 아스키 값 |
|---|---|
'0' ~ '9' |
48 ~ 57 |
'A' ~ 'Z' |
65 ~ 90 |
'a' ~ 'z' |
97 ~ 122 |
외울 건 많지 않습니다. 연속한다는 것('A'+1 == 'B')과, 대문자·소문자가
정확히 32 차이라는 것만 알면 됩니다.
2. 문자 ↔ 숫자 변환
C++에서 char는 사실상 작은 정수라, 그냥 연산이 됩니다.
char c = 'A';
cout << (int)c << '\n'; // 65 (코드값)
char d = 'A' + 3;
cout << d << '\n'; // 'D'
print(ord('A')) # 65 문자 -> 코드
print(chr(68)) # 'D' 코드 -> 문자
파이썬은 ord(문자→숫자)와 chr(숫자→문자)를 씁니다.
3. 가장 유용한 두 공식
(1) 숫자 문자 → 실제 숫자
char c = '7';
int n = c - '0'; // 7 ('7'코드 - '0'코드 = 7)
(2) 알파벳의 순서 (0부터)
char c = 'c';
int idx = c - 'a'; // 2 (a=0, b=1, c=2)
이 "문자 - 기준문자" 패턴이 아스키 활용의 핵심입니다. 빈도 배열의 인덱스를 만들
때 특히 많이 씁니다.
4. 대소문자 변환
대문자와 소문자는 32 차이이므로:
char upper = 'a' - 32; // 'A' (소문자 -> 대문자)
char lower = 'A' + 32; // 'a'
// 더 안전하게: ch - 'a' + 'A'
print('a'.upper()) # 'A' (보통은 내장 메서드가 편함)
복잡도
문자 ↔ 숫자 변환은 \(O(1)\)입니다. 문자열 전체를 처리하면 길이에 비례(\(O(N)\)).
정리
- 문자는 내부적으로 숫자(아스키 코드).
'0''9'=4857,'A''Z'=6590,'a''z'=97122.- 숫자 문자→수:
c - '0'. 알파벳 순서:c - 'a'. - 대소문자 차이는 32.