티스토리 뷰

반응형

 

아스키코드 변환 함수 ord( ), chr( )

 

- 순서 -
1. 아스키코드 설명
2. ord( )
3. chr( )

 


1. 아스키코드(ascii)

 

아스키는 미국 정보교환 표준 부호 (American Standard Code for Information Interchange)이다. 줄여서는 ASCII라고 표현한다. 말 그대로 정보를 교환하는 부호인 것이다. 문자열이나 기호를 컴퓨터에 이용하기 위해서는 컴퓨터에 전달할 수 있도록 코드화, 부호화해야 하고 그런 과정을 문자 인코딩이라고 한다.

 

아스키코드는 기호와 영문알파벳에 적합한 문자 인코딩이다. 아스키코드가 영문알파벳과 기호에 적합한 이유는 7비트 인코딩이기 때문이다. 7비트 인코딩으로 표현 가능한 것은 0부터 127까지 총 128개로 그 범위 안에 할당된 값은 기호와 영문 알파벳만이 해당된다. 한글과 같이 크기가 큰 문자는 인코딩하기에 적합하지 않은 것이다. 

 

파이썬에서 한글을 아스키코드로 변환을 해본적은 있다. 에러 없이 변환이 되기는 하는데 숫자가 굉장히 크다. 아스키코드에 부여된 범위를 넘어서는 숫자가 출력되기에 그 뒤로 또 시도해보진 않았다.  

 

0~127까지의 숫자를 모두 기호와 영문알파벳으로 사용하는 것은 아니다. 32까지의 숫자는 제어용 언어로 알고 있다. 이후에 3번부터 기호로 시작한다. 영어 대문자는 65~90으로 나타내고 소문자는 97~122로 나타낼 수 있다. 아래 사용 예시에서 해당 숫자를 이용해 문자를 출력하는 것을 예시를 들어보겠다.

 

32~127번까지 10진수와 부호의 짝을 정리한 아스키코드 표를 첨부한다. 내가 만든 것은 아니다. 나무위키에서 가지고 온 표이다.

아스키코드표

출처: 나무위키

계속해서 아스키코드 변환을 할 수 있는 함수 ord, chr에 대해 설명한다.

 

 

2. ord( )

문자열을 아스키코드로 반환할 수 있는 함수이다. 

ord(c) 형태로 이용한다. 괄호( ) 안에 문자를 넣으면 그 문자에 해당하는 아스키코드를 숫자로 반환한다. 

 

사용 예시

>>> ord('a')
97

>>> ord('z')
122

위 아스키코드표에서 본 것과 마찬가지로 소문자 a에 대한 값은 97, z에 대한 값은 122가 출력되었다.

그리고 97 ~ 122 사이의 숫자가 각각 알파벳 소문자 a~z를 나타낸다. 이 숫자를 for문을 이용해서 문자로 출력할 수 있다.

>>> for i in range(97,123):
>>>     print(chr(i), end=' ')
a b c d e f g h i j k l m n o p q r s t u v w x y z

 

3. chr( )

아스키코드를 문자열로 변환하는 함수이다. 

chr(i) 형태로 이용한다. 괄호( ) 안에 숫자를 넣으면 그 숫자의 아스키코드에 대응하는 문자를 반환한다.

 

사용 예시

>>> chr(65)
A

>>> chr(90)
Z

이번엔 대문자를 출력할 수 있도록 65와 90을 사용해보았다. 소문자와 마찬가지로 for문을 이용해서 A부터 Z까지를 표현하거나 그중 일부만 나타낼 수도 있다. 

 

파이 참 문서

ord
def ord(__c: Union [str, bytes]) -> int
--------------------
Return the Unicode code point for a one-character string.


chr
def chr(__i: int) -> str
--------------------
Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10 ffff.

 

 

반응형
댓글
반응형