1 minute read

‘혼자 공부하는 컴퓨터구조+운영체제 - 강민철’ 책을 참고하여 작성한 포스트입니다.


정보 단위

  • 컴퓨터가 이해하는 가장 정보단위는 비트(bit)라고 하며 0과 1을 나타낸다.
  • 바이트(byte)는 8개의 비트를 묶은 단위다. $2^8$개(256개)의 정보를 표현할 수 있겠죠.
  • 1바이트를 1,000개 묶은 단위를 1kB, 1,000kB를 1MB, 1,000MB를 1GB, 1,000GB를 1TB 라고 한다.
  • 1,024($2^10$)씩 묶은 단위는 KiB, MiB, GiB, TiB 라고 각각 칭한다.
  • 워드(word)라는 정보 단위도 있는데, CPU가 한 번에 처리할 수 있는 데이터 크기이다.
  • 현대 컴퓨터의 워드 크기는 대부분 32비트 혹은 64비트 이다.



이진법

  • 0과 1로 숫자를 표현하는 방법을 이진법(binary) 이라고 한다.
  • 이진법으로 표현한 숫자를 이진수라고 한다.

이진수의 음수 표현

  • 0과 1로 음수를 표현하는 방법 중 가장 널리 사용되는 방법은 2의 보수(two’s complement)이다.
  • 특정 수의 음수는 ‘그 수보다 큰 $2^n$에서 뺀 값’이다.
  • 간단하게 0과 1을 각각 1과 0으로 모두 바꾼 수에 1을 더한 값과 같다.
  • 음수의 음수는 처음의 그 수가 된다.
  • 컴퓨터에서 양수 음수를 구분하기 위해 플래그(flag)를 사용한다.
  • 2의 보수로는 $2^n$과 $-2^n$의 보수를 표현하지 못하는 문제가 있다.



문자 집합과 인코딩

  • 컴퓨터가 인식하고 표현할 수 있는 문자의 모음을 문자 집합(character set)이라고 하고,
  • 문자를 0과 1로 변환하는 과정을 문자 인코딩(character encoding)이라고 한다.
  • 반대 과정을 문자 디코딩(character decoding) 이라고 한다.



아스키 코드

  • 아스키(ASCII, American Standard Code for Information Interchange)는 영어 알파벳과 아라비아 숫자, 그리고 일부 특수 문자를 포함하는 초창기 문자 집합 중 하나다.
  • 아스키 문자를 표현하기 위해 1바이트를 사용하는데 그 중 1비트는 패리티 비트(parity bit)라고 부르며, 오류 검출을 위해 사용한다.
  • 따라서 실질적으로 문자 표현을 위해 사용되는 비트는 7비트로, 128개의 문자를 표현할 수 있다.
  • 아스키 문자에 대응된 고유한 수를 아스키 코드 라고 한다. 즉, 0~127의 수가 아스키 문자 집합에 할당되어 아스키 코드로 인코딩된다.



EUC-KR

  • 한글 인코딩에는 1. 완성형(한글 완성형 인코딩), 2. 조합형(한글 조합형 인코딩) 이 있다.
  • EUC-KR은 KS X 1001, KS X 1003 이라는 문자 집합을 기반으로 하는 대표적인 완성형 인코딩 방식이다.
  • 완성된 한글 단어에 2바이트 크기의 코드를 부여한다.
  • 이 방식은 총 2,350개 정도의 한글 단어를 표현할 수 있는데, 약간 부족하다.
  • CP949(code page 949)가 등장했으나 여전히 부족하다.



유니코드와 UTF-8

  • 유니코드(unicode)는 모든 나라 언어의 문자 집합과 인코딩 방식을 통일한 표준 인코딩 방식이다.
  • 인코딩 방법에 따라 UTF-8, UTF-16, UTF-32 등이 있다. UTF-8이 가장 대중적이다.



정리

  • 비트는 0과 1로 표현할 수 있는 가장 작은 정보 단위
  • 이진법에서 음수는 2의 보수로 표현 가능하다
  • 문자 집합은 컴퓨터가 인식할 수 있는 문자의 모음으로, 문자 집합에 속한 문자를 인코딩하여 0과 1로 표현한다
  • 아스키 문자 집합에 0~127수가 할당되어 아스키 코드로 인코딩된다.
  • EUC-KR은 한글을 2바이트 크기로 인코딩 할 수 있는 완성형 인코딩 방식이다.
  • 유니코드는 여러 나라의 문자들을 광범위 하게 표현할 수 있는 통일된 문자 집합이다.

Leave a comment