화성에 홀로 남겨진 마크 와트니가 지구에 통신하기 위해 아스키코드를 활용하기로 결정! 동료 베스 요한센(Bess Johanssen)의 짐에서 아스키코드 표를 꺼내 지구에 전달한 메세지를 준비했는데요. 만일 요한센의 가방에 아스키코드 표가 없었더라면 마크 와트니는 지구로 돌아올 수 있었을까요? 미래에 언제라도 화성에 홀로 남겨질 수 있는 상황에 대비하여 이번 글에서는 아스키코드를 간단하게 외우는 방법을 써보려고 합니다.

1. 8 bit로 Capital Letter 아스키코드 나타내기

65를 2진수로 바꾸면 1000001(2)가 됩니다.

bin(65)= '0b1000001'

놀랍게도 이 1000001(2)에 0을 붙인 01000001는 A의 아스키코드가 됩니다. 게다가 여기에 1씩 더하면 다음 capital case A에 대한 아스키코드 값도 구할 수 있습니다. A 다음 순서로 오는 대문자 알파벳은 8bit 값에 1씩 더해주어 구할 수 있습니다.

    0100 0001(2) = A
    0100 0010(2) = B
    0100 0011(2) = C
    ...
    0101 1010(2) = Z

2. 8 bit로 Small Letter 아스키코드 나타내기

대문자 알파벳의 아스키코드 8bit 값을 활용하면 됩니다. 왼쪽에서 세번째 비트를 0에서 1로 바꿔주면 같은 알파벳의 small case인 a로 바뀌는 것을 확인할 수 있습니다. a 다음 순서로 오는 소문자 알파벳은 8bit 값에 1씩 더해주어 구할 수 있습니다.

    0110 0001(2) = a
    0110 0010(2) = b
    0110 0011(2) = c
    ...
    0111 1010(2) = z

3. 8bit로 한 자리 정수 (0~9) 아스키코드 나타내기

이번에는 소문자 알파벳의 아스키코드 8bit 값을 활용합니다. 1) 왼쪽에서 두번째 비트를 1에서 0으로 바꾸고 2) 왼쪽에서 네번째 비트를 0에서 1로 바꾼 후, 3) 오른쪽에서 첫번째 비트를 0부터 시작하면 숫자 0에 대한 아스키코드를 구할 수 있습니다. 마찬가지로 그 다음 숫자는 1씩 더해서 구할 수 있습니다.

    0011 0000(2) = 0
    0011 0001(2) = 1 
    0011 0010(2) = 2
    0011 0011(2) = 3
    ...
    0011 1001(2) = 9

저는 0진수인 0~9를 2진수로 변환하며 4비트로 구한 다음, 앞에 0011씩 붙이는 방식이 더 편리했습니다.