ASCII는 미국 ANSI에서 표준화한, 정보교환용 7비트 부호체계이다.
8비트(1바이트) 중 7비트만 쓰는 이유는 나머지 1비트를 통신 에러 검출을 위해 비워뒀기 때문이다. 이를 패리티 비트(Parity Bit)라 하며, 7비트 중 1의 개수가 홀수면 1, 짝수면 0을 보내 신호의 변질 여부를 판단한다.
다만 ASCII로는 한글과 같은 2바이트 이상의 다양한 문자를 표현할 수 없기 때문에 현대에는 이를 확장한 유니코드를 주로 사용한다.
우리의 키보드에 있는 문자들을 표현할 수 있는 10진수의 목록이며, 문제 해결을 위해 A ~ Z
는 65 ~ 90
, a ~ z
는 97 ~ 122
인 것 정도는 사전에 알아두면 유용할 듯하다.
그렇다면 코드에서는 어떻게 10진수를 문자로, 문자를 10진수로 바꿀 수 있을까?
내장함수 chr()
와 ord()
를 이용해 가능하다.
chr()
는 아스키코드를 문자로, ord()
는 문자를 아스키코드로 변환한다.
print(chr(65))
# A
print(ord('A'))
# 65
chr()
와 ord()
만 알아두면, 혹여나 잘 모르는 문자의 ASCII 값을 찾아야 하더라도 직접 대입해보며 해결할 수 있을 것이다.