김기현
Chapter02

데이터

0과 1로 숫자를 표현하는 방법

정보 단위

컴퓨터는 0과 1만 이해, 0과 1을 나타내는 가장 작은 정보 단위 = 비트(bit)

비트 = 2^n 1바이트(1Byte) = 8비트(256개의 값)
1킬로바이트(1KB) = 1,000바이트(1,000Byte)
1메가바이트(1MB) = 1,000킬로바이트(1,000KB)
1기가바이트(1GB) = 1,000메가바이트(1,000MB)
1테라바이트(1TB) = 1,000기가바이트(1,000GB)

이진법

0과 1만으로 모든 숫자를 표현하는 방법 = 이진법(binary)

숫자 10은 일반적으로 보면 10이지만, 이진수로는 10이 아닌 2이기 때문에 이런 혼동을 예방하기 위해
이진수는 끝에 아래첨자₍₂₎를 붙혀주거나 앞에 0b를 붙여줌.

ex: 8= 1000₍₂₎or 0b1000

음수는 2의 보수, 이진수의 0과 1을 뒤집고 +1 해준 값

ex: 이진수 11을 음수로 표현 11>00>01= 이진수 01

십육진법

데이터 표현을 위해 이진법과 함께 십육진법을 사용 (0~9,A~F)

이진수와 마찬가지로 숫자 뒤 아래첨자₍₁₆₎ 혹은 앞에 0x를 붙여 구분함.

이진법과 같이 십육진법을 쓰는이유 = 이진법은 0과 1로만 표현하다보니 숫자가 길어지는 단점이 있음, 십육진법이 이진법과 변환하기 쉬움

0과 1로 문자를 표현하는 방법

문자 집합과 인코딩

컴퓨터가 인식과 표현이 가능한 문자 모음 = 문자 집합(Character set)

∴ 컴퓨터는 문자 집합에 속해있는 문자만 이해가능
ex: 문자 집합이 {a,b,c,d}이면 e,f,g는 이해하지 못함

문자 집합에 속해있는 문자를 0과 1로 변환해야 컴퓨터가 이해하는데, 이 변환 과정을 문자 인코딩 (character encoding) ,

이렇게 문자 인코딩을 거쳐 0과 1로 이루어져 나오는 결과값이 문자 코드가 됨.

이 문자 코드를 사람이 이해할수 있는 문자로 변환하는 과정을 문자 디코딩 (character decoding) 이라함.

아스키 코드

알파벳, 아라비아 숫자, 일부 특수문자를 포함한 초창기 문자 집합 = 아스키 코드

아스키 문자는 128개의 문자를 표현할수 있고, 8비트를 사용하지만
오류 검출을 위해 사용되는 패리티 비트(Parity bit)가 1비트를 사용하기 때문에 실질적으로 7비트만 사용함.

EUC-KR

알파벳은 이어쓰면 단어가 되지만, 한글은 음절 하나하나가 초성,중성,종성의 조합으로 이루어져 있음

아스키 문자는 한글과 아스키 문자 집합 외의 문자, 특수문자를 표현할수없어 이를 보완한 인코딩 방식 = EUC-KR

인코딩엔 2가지 방식이 존재

완성형 인코딩 = 글자가 각자 고유 코드를 가짐
조합형 인코딩 = 자음과 모음이 코드를 가지고 이를 조합

기존 알파벳은 1바이트를 사용, EUC-KR로 인한 한글은 2바이트 사용

유니코드와 UTF-8

모든 나라 언어의 문자 집합과 인코딩 방식이 통일된 표준 인코딩 방식

EUC-KR보다 훨씬 다양한 언어 표현이 가능해 현재 가장 많이 사용되고 있는 표준 문자 집합