본문 바로가기
컴퓨터/구조

[CH2] 데이터

by 덤더리덤떰 2023. 9. 20.

2-1. 0과 1로 숫자 표현하는 방법

(1) 단위

: 1bit -> 1byte -> 1KB (1000byte) -> 1MB(1000KB) -> 1GB(1000MB) -> 1TB(1000GB) -> 1PB(1000TB)

cf> word : CPU가 한 번에 처리할 수 있는 데이터 크기 

=> 만약 CPU가 한 번에 16bit 처리 : 1word = 16bit

2-2. 0과 1로 문자 표현하는 방법

  1. 문자 집합
  2. 인코딩
  3. 디코딩

(1) 문자 집합 

: 컴퓨터가 인식하고 표현할 수 있는 문자의 모음 ( 문자 집합에 속한 문자만 컴퓨터가 이해할 수 있음)

 

=> 이때 문자집합에 속해있는 문자라고 컴퓨터가 그대로 이해할 수 있지않음

=> 문자를 0과 1로 변환하는 인코딩 과정 필요 

=> 이때 0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정이 디코딩 

 

1) 아스키코드

: 초창기 문자 집합 중 하나로 영어 알파벳과 아라비아 숫자, 일부 특수 문자 포함

: 8bit ( 7bit : 아스키 문자 + 1bit : 오류검출하는 패리티 비트)

cf> 문자 인코딩에서 글자에 부여된 값 = > 'A' : 65(A의 코드포인트)

 

1-1) 단점

: 한글, 아스키 문자 집합 외의 문자, 특수문자 표현이 불가능

=> EUC-KR 등장 

 

2) EUC-KR (완성형 인코딩)

=> 2byte 필요 

 

2-1) 한글 인코딩

  • 완성형(한글 완성형 인코딩) : 초성,중성,종성의 조합으로 이루어진 완성된 하나의 글자의 고유한 코드 부여 
  • 조합형(한글 조합형 인코딩) : 초성/중성/종성을 위한 비트열 할당하여 코드를 합해 하나의 글자 코드 생성 

ex) 

      / 완성형 인코딩 : 강 => 11101010 10110000 10010101

'강' \ 조합형 인코딩 : ㄱ + ㅏ + ㅇ => 0010(ㄱ)  0011(ㅏ) 0001 00011(ㅇ)

 

2-2) 단점

: '쀍'같은 글자는 표현하지 못하기에 마이크로소프트사의 CP949(EUC-KR 확장버전) 등장

=> 하지만 CP949도 모두 표현하지는 못한다 

 

3) 유니코드 ( 현대 문자를 표현할 때 가장 많이 사용되는 표준 문자 집합) 

: 모든 언어를 아우르는 문자 집합과 통일된 표준 인코딩 방식

=> 아스키코드, EUC-KR은 코드 포인트를 그대로 인코딩 값으로 삼았지만 유니코드는 UTF-8, UTF-16,...로 인코딩

 

3-1) UTF-8 인코딩방식

: 1byte부터 4byte까지의 인코딩 결과 도출 

출처 : 위키피디아

ex)

한 : 0xD55C => 1101 0101 0101 1100(2)

글 : 0xAE00 => 1010 1110 0000 0000(2) 

->UTF-8 인코딩 방식을 따르면 '한','글' 모두 3byte로 도출

-> 최종 UTF-8 인코딩 결과 : 11101101 10010101 10011100(2) 

                                                 11101010 10111000 10000000(2)

 


< 총정리 >

  • 문자 집합 : 컴퓨터가 인식할 수 있는 문자의 모음으로 문자 집합에 속한 문자를 인코딩하여 0과 1로 표현
  • 아스키문자 집합에 0부터 127까지 할당하여 아스키 코드로 인코딩
  • EUC-KR : 한글을 2byte로 인코딩하는 완성형 인코딩 방식
  • 유니코드 : 여러 나라의 문자들을 광범위하게 표현할 수 있는 통일된 문자 집합 => 유니코드의 코드 포인트가 인코딩 값이 아닌 UTF-8 등의 인코딩 방식을 이용하여 최종적으로 유니코드의 인코딩값 도출 

'컴퓨터 > 구조' 카테고리의 다른 글

[CH3] 명령어  (0) 2023.09.20
[CH1] 컴퓨터 구조  (0) 2023.09.20