티스토리 뷰

기타

ASCII 코드

맥밤 2015. 12. 28. 21:48

이 블로그는 제가 공부한 것을 바탕으로 정리 목적으로 사용되고 있습니다.

작성 내용중 부족한 부분이나 잘못된 부분을 지적해주시면 감사하겠습니다 (꾸벅)




아스키(ASCII) 또는 미국 정보 교환 표준 부호 (American Standard Code for Information Interchange)는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기반한다. 

아스키는 1967년에 표준으로 제정되어 1986년에 마지막으로 개정되었다. 아스키는 7비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 이루어진다. 제어 문자들은 역사적인 이유로 남아 있으며 대부분은 더 이상 사용되지 않는다. 출력 가능한 문자들은 52개의 영문 알파벳 대소문자와 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어진다.

아스키가 널리 사용되면서 다양한 아스키 기반의 확장 인코딩들이 등장했으며, 이들을 묶어서 아스키라고 부르기도 한다. 대표적으로 7비트 인코딩을 유지한 ISO/IEC 646과, 원래 아스키 코드 앞에 비트 0을 넣어 8비트 인코딩을 만드 IBM 코드 페이지와 ISO 8859가 있다. 이 인코딩들은 언어군에 따라 같은 숫자에 서로 다른 문자가 배당된 경우가 많다.




아스키코드는 256가지(1byte) 경우의 수로 표현 가능한 문자코드 


영문자일 경우에는 대소영문자와 숫자, 몇 가지 기호를 포함해서 100글자가 넘지 않는다.

2의 8제곱인 1바이트만 가지고도 영문자를 모두 구별할 수 있다.

즉 1바이트를 분석해서 8비트로 표현하고 있는 숫자가 십진수로 65면 A라고 판단하고, 66이라는 숫자면 B로 판단할수 있다.

아스키 코드는 단지 128개의 글자만 사용하기 때문에, 나머지 비트는 패러티 비트나 특수 문자로 사용된다.



아스키 코드의 필요성


예를 들어보자.

철수의 컴퓨터에서는 65라는 숫자를 A로 이해하고 있는데, 영수의 컴퓨터에서는 1을 A라고 이해하고 있을 경우에 어떤 문제가 발생할까?

철수의 컴퓨터에서는 A라는 문자를 영수에게 보낸다면 영수의 컴퓨터에서는 1바이트의 단위로 1이라는 숫자로 인식이 된다.

즉 8개의 비트 조합을 통해 이진수로 상대편 컴퓨터에 보낸다.

그런데 영수의 컴퓨터에서는 65라는 숫자는 A가 아니다.

영수의 컴퓨터에서 65번이 z로 배정되어 있다면, 영수의 컴퓨터에는 z로 표시된다,

이렇게 되면 이쪽 컴퓨터에서 보낸 자료가 상대편 컴퓨터에서는 엉망진창인 낱말이 된다.



따라서 컴퓨터끼리 자료를 주고받기 위해서는 1바이트로 표현 가능한 영문자와 숫자의 순서를 정해서 모든 컴퓨터가 함께 사용해야 하는데, 

미국에서는 아스키라는 규칙을 만들어서 사용하고 있다.

'기타' 카테고리의 다른 글

main()함수 외에 다른 함수를 만들어야 하는 이유  (0) 2016.04.06
Linux curl 명령어  (0) 2016.03.15
Visual Basic 파일의 특징  (0) 2016.01.12
Process Explorer - 작업 관리자  (0) 2015.12.29
정적분석? 동적분석  (0) 2015.12.26
댓글