본문 바로가기

CS/혼자 공부하는 컴퓨터구조와 운영체제

02 - 데이터

컴퓨터가 이해하는 가장 작은 정보 단위 - 0과 1을 나타내는 가장 작은 정보 단위를 비트라고 한다.

예로 2비트는 { 0 or1 } { 0 or 1} 로 총 4가지 정보를 표현할 수 있다.

즉, n 비트는 2의 n 제곱 가지의 정보를 표현 가능하다.

1바이트(byte) = 8비트

1킬로바이트(kB) = 1000바이트

1메가바이트(mb) = 1000킬로바이트

1기가바이트(gb) = 1000메가바이트

1테라바이트(tb) = 1000기가바이트

Word

워드는 CPU 가 한 번에 처리할 수 있는 데이터 크기를 의미한다

만약 CPU 가 한 번에 16비트를 처리할 수 있다면 1워드는 16비트가 되고, 한 번에 32비트를 처리할 수 있다면 1워드는 32비트가 되는 것이다.

정의되어진 워드의 절반 크기를 하프 워드, 1배 크기를 풀 워드, 2배 크기를 더블 워드라고 부른다.

워드 크기가 큰 CPU 는 한 번에 처리할 수 있는 데이터가 많다. 워드 크기는 CPU 마다 다르지만 현대 컴퓨터의 워드 크기는 대부분 32비트 또는 64 비트이다. 가령 인텔의 x86 CPU는 32비트, x64 CPU 는 64비트 워드 CPU 이다.

마무리1

  1. 비트느 0과 1로 표현 할 수 있는 가장 작은 정보 단위
  2. 바이트, 킬로바이트, 메가바이트, 기가바이트, 테라바이트는 비트보다 큰 정보 단위
  3. 이진법은 1을 넘어가는 시점에 자리 올림하여 0과 1만으로 수를 표현하는 방법
  4. 이진수에서 음수는 2의 보수로 표현
  5. 16진법은 15를 넘어가면 자리 올림

 

 

0과 1로 문자를 표현하기 전에 알아야 하는 3가지 용어가 있다.

문자 집합, 인코딩, 디코딩이다.

컴퓨터가 인식하고 표현할 수 있는 문자의 모음을 문자 집합이라고 한다.

컴퓨터는 문자 집합에 속해 있는 문자를 이해할 수 있고, 속해 있지 않는 문자는 이해할 수 없다.

문자 집합에 속해 있는 문자를 컴퓨터가 바로 이해하는 것은 아니고, 문자를 0과 1로 변환해야 이해할 수 있다. 이 변환 과정을 문자 인코딩이라고 하고 결과값인 0과 1로 묶여 있는 값을 문자 코드라고 한다.

다시 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정을 문자 디코딩이라고 한다.

아스키 코드

아스키는 초창기 문자 집합 중 하나로, 영어 알파벳과 아라비아 숫자, 일부 특수 문자를 포함한다.

각각의 문자들은 7비트로 표현되며, 2의 7제곱근 으로 128가지의 문자들을 표현하는 집합

이 해당 문자들에 대응하는 수를 아스키 코드라고 한다.

예로 ‘A’ = 65로 인코딩된다. ‘a’ = 97 로 인코딩 된다.

이러한 65 , 97 같은 글자에 부여한 공유 값을 코드 포인트라고 한다.

아스키에는 한글이 없어서 한글 인코딩 방식인 EUC-KR 이 있다.

EUC-KR

한글 인코딩은 한글의 특수성을 알아야 한다.

한글은 초성, 중성,종성의 합으로 이어져 있기 때문이다

그래서 2가지 인코딩 방식이 있다.

  1. 완성형 인코딩 - 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여하는 인코딩 방식
  2. 조합형 인코딩 - 초성,중성,종성을 위한 각각의 비트열을 할당하여 그것들을 조합하여 하나의 글자 코드를 완성하는 인코딩 방식이다.

EUC-KR 은 KS X 1001, KS X 1003 문자 집합을 기반으로 하는 대표적인 완성형 인코딩 방식이다.

즉, 한글 단어 당 2바이트의 크기의 코드를 부여한다.

EUC-KR 인코딩은 2350개의 한글 단어를 표현 가능. 이마저도 작다.

그래서 마이크로소프트에서 CP949라는 확장 버전을 내놓음.

다만, 이마저도 한글 전체를 표현하기에 넉넉한 양은 아님

유니코드와 UTF - 8

모든 나라 언어의 문자 집합과 인코딩 방식이 통일되어 언어별 인코딩을 하지 않는 문자 집합이 유니코드 이다. 가장 많이 사용되는 표준 문자 집합이고 문자 인코딩에서 매우 중요한 역할을 맡고 있다.

그 전 문자 집합들은 글자에 부여한 값을 인코딩 값으로 사용하지만, 유니코드는 아니다.

해당 부여한 값을 유니코드는 다양한 방법으로 인코딩 한다.

UTF-8, UTF-16, UTF-32 등이 있다.

마무리2

  1. 문자 집합은 컴퓨터가 인식할 수 있는 문자의 모음. 문자 집합에 속한 문자를 인코딩하여 0과 1로 표현
  2. 아스키 문자 집합에 0부터 127까지의 수가 할당되어 아스키 코드로 인코딩
  3. EUC-KR 은 한글을 2바이트 크기로 인코딩할 수 있는 완성형 인코딩 방식
  4. 유니코드는 여러 나라의 문자들을 광범위하게 표현 할 수 있는 통일된 문자 집합

'CS > 혼자 공부하는 컴퓨터구조와 운영체제' 카테고리의 다른 글

05 - CPU의 성능 향상 기법  (0) 2024.06.01
04 - CPU의 작동 원리  (1) 2024.05.30
03 - 2 명령어 2  (1) 2024.02.14
03 - 1 명령어  (0) 2024.02.14
01 - 컴퓨터 구조 시작하기  (0) 2024.02.08