Page 28 -
P. 28
더 알아보기 리틀/빅 엔디안 또는 바이트 순서(byte order)
컴퓨터에서 정수를 저장하는 방법은 두 가지를 사용한다. 빅 엔디안은 정수를 순서대로 저장하는 것이다. 예를
들어 16진수 A3B2를 저장할 때 빅 엔디안은 순서대로 A3 B2 형태로 메모리에 저장한다. 리틀 엔디안은 정수
를 반대로 저장한다. 즉 A3B2를 저장할 때 B2 A3로 저장한다. 워크스테이션이나 대형 컴퓨터에서 주로 사용하
던 CPU들은 빅 엔디안을, 데스크톱에서 많이 쓰였던 인텔 CPU는 리틀 엔디안을 사용한다.
파이썬 코드로 인코딩 다뤄보기
문자열을 바이트열(8비트 단위의 숫자 열)로 변환해본다. 바이트열로 변환한다는 것은 문자를
이진화된 코드로 구성된 문자열로 바꾸는 것이다.
문자열을 바이트열로 바꾸는 것은 문자열에 포함되어 있는 encode() 함수를 사용한다.
“test”라는 문자열을 이진화된 형태로 바꿔본다.
>>> "test".encode()
b'test'
encode() 함수에 아무런 인자를 전달하지 않으면 utf-8 방식으로 변환한다.
출력 결과에 ‘b’가 붙은 것은 뒤에 나타나는 ‘test’가 이진화된 코드(binary code)임을 나타낸다.
‘test’가 숫자가 아닌 영문자로 나타나는 것은 utf-8에서 영문 알파벳이 1바이트로 표현되기 때
문이다. 이진 코드인 1바이트 숫자값을 파이썬에서 문자열 형태로 바꾸면서 영문자는 있는 그
대로 영문 알파벳으로 보인다.
숫자들로 구성된 문자열을 인코딩해도 마찬가지 결과가 나타난다.
>>> "1234".encode() # 1234가 그대로 보임
b'1234'
한글을 인코딩하면 다른 결과가 나온다.
>>> "파이썬".encode()
b'\xed\x8c\x8c\xec\x9d\xb4\xec\x8d\xac'
186 │ 파이썬