Dev.J

[CS50] ASCII코드 본문

Computer Science

[CS50] ASCII코드

JJ____ 2022. 3. 10. 22:11

컴퓨터가 데이터에 대해 수행하는 작업으로, 숫자가 아닌 문자나 다른 것들을 나타내기 위해 하는 일 : 숫자를 알파벳 문자에 대응시키는 것.

ASCII 코드

컴퓨터는 텍스트를 비롯한 다양한 형태의 정보를 저장해야 하지만 컴퓨터가 0과 1로된 데이터만 저장할 수 있기 때문에, 0과 1을 이용해 텍스트 문자로 나타내야 한다. ASCII(아스키) 문자를 컴퓨터가 이해할 수 있는 이진 데이터(0 또는 1)로, 혹은 그 반대로 변환하는 표준 방법이다.

 

 

ASCII 인코딩 표준

ASCII(아스키)는 컴퓨터가 텍스트 데이터를 저장하기 위해 흔하게 사용하는 표준코드체계이다. 이 표준에서 숫자 65는 대문자 ‘A’와 대응된다. 따라서 컴퓨터가 대문자 ‘A’를 저장하고 싶다면 숫자 65를 이진수로 저장할 것이다(2진수로 나타내면, 1000001). 그 다음의 25개 값들은 다른 대문자 25개와 대응된다.

소문자도 ASCII에서 숫자로 나타낼 수 있다. 소문자 ‘a’는 숫자 97로 나타내고 ‘b’는 98로 나타내며 이 후 다른 소문자들도 마찬가지이다. 따라서 컴퓨터가 소문자 ‘a’를 저장하려면 숫자 97을 2진수, 1100001로 저장해야 한다.

여기서 소문자 ‘a’와 대문자 ‘A’가 2^5의 자릿수만 다르다.

ASCII에서 소문자는 같은 대문자 글자보다 항상 2^5만큼 크. 결과적으로 이진수에서 2^5의 자릿수만 바꾸면 되기 때문에(소문자는 1, 대문자는 0으로) 소문자와 대문자 간의 변환이 쉬워진다.

그림 1
 

ASCII의 한계

흔히 ASCII 코드는 ASCII 코드 표로 나타낸다. ASCII 코드 표는 모든 ASCII 코드 문자와 그에 대응하는 숫자를 보여준다.

기본 ASCII 코드 표는 7비트만 이용해서 모든 문자들을 나타낼 수 있다. 이것은 ASCII 코드로 2^7 개, 즉 128개의 문자를 나타낼 수 있다는 것을 의미한다. 확장 ASCII 8번째 비트를 추가하여 총 256개의 문자를 나타낼 수 있도록 한다. 소문자와 대문자 통틀어 52개 알파벳 밖에 없으므로, 그 외 남는 공간에 구분 기호, 숫자, 몇몇 기본 심볼들($나 % 기호 등) 같은 다른 종류의 문자들을 나타낼 수 있다.

하지만 8비트 ASCII 코드로도 나타낼 수 없는 문자들이 아직도 많다. 우리가 사용할 수 있는 문자들의 개수는 256개보다 많기 때문이다. 예를 들어, 수학 기호들과 영어 외 다른 언어의 글자들은 표준 ASCII 표에 들어가기 힘들다. 이 때문에 훨씬 더 많은 문자들을 포함할 수 있는 유니코드(Unicode)이 생기게 되었다. 예를 들어, 유니코드는 100만개 이상의 문자들을 나타낼 수 있는 문자 인코딩 표준이다. 이러한 유니코드의 첫 128개의 문자는 ASCII의 128개의 문자와 동일하므로 서로 호환이 된다.

 

information source : edwith

728x90

'Computer Science' 카테고리의 다른 글

[CS50] 알고리즘  (0) 2022.03.25
[CS50] 인공지능  (0) 2022.03.25
[CS50] 가상 현실과 증강 현실  (0) 2022.03.12
[CS50] 이미지  (0) 2022.03.12
[CS50] 2진수  (0) 2022.03.10