[컴퓨터구조] 데이터
‘혼자 공부하는 컴퓨터구조+운영체제 - 강민철’ 책을 참고하여 작성한 포스트입니다.
정보 단위
- 컴퓨터가 이해하는 가장 정보단위는 비트(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