FreeHand

데이터 표현 본문

CS

데이터 표현

Jinn 2023. 10. 31. 23:21

컴퓨터는 모든 정보를 0과 1로 표현한다.

 

숫자 표현 방법

정보 단위

0과 1을 나타내는 가장 작은 단위를 bit(비트)라고 한다.

 

1bit는 0 또는 1을 나타낼 수 있다.

2bit는 (0, 0), (0, 1), (1, 0), (1, 1) 을 나타낼 수 있다.

n비트는 2ⁿ가지 정보를 표현할 수 있다.

 

1byte 8bit
1kB 1000byte
1MB 1000kB
1GB 1000MB
1TB 1000GB

 

* word(워드) : CPU가 한번에 처리할 수 있는 데이터의 크기

한번에 32비트를 처리할 수 있으면 1워드는 32비트이다. 현대 컴퓨터의 워드 크기는 대부분 32비트 또는 64비트이다.

 

이진법

숫자가 1을 넘어갈 때 자리 올림을 하여 0과 1로만 숫자를 표현하는 방법. 이진법으로 표현한 수를 이진수라고 한다.

 

이진수의 음수는 2의 보수로 표현한다.

2의 보수는 이진수의 모든 0과 1을 반대로 바꾸고 1을 더한 값이다.

이진수 11의 2의 보수는 이진수 01이다. (11 -> 00 -> 01)

즉, 이진수 11의 음수는 이진수 01이다.

 

이진수 01과 이진수 11의 음수인 이진수 01을 구분하기 위해서 플래그를 사용한다.

 

* 2의 보수 표현의 한계

이진수 1000의 2의 보수는 (1000 -> 0111 -> 1000)으로 자기 자신이 되는 문제가 있다.

즉, -2ⁿ과 2ⁿ을 동시에 표현할 수 없다.

 

십육진법

십육진법은 (0~9, A~F)의 16개의 종류로 숫자를 표현한다.

이진수와의 변환이 쉽기 때문에 사용된다.

 

* 십육진수 -> 이진수 변환

2⁴ = 16이므로 십육진수 숫자 하나를 표현하기 위해서 4비트의 이진수가 필요하다.

따라서 십육진수 숫자 하나를 4비트 이진수로 바꾸면 된다.

 

십육진수 1A2B에서 1은 이진수로 0001, A는 1010, 2는 0010, B는 1011이므로

십육진수 1A2B는 이진수 0001101000101011이 된다.

 

이진수 -> 십육진수 변환은 반대로 하면 된다.


문자 표현 방법

문자 집합과 인코딩

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

문자 집합에 있는 문자를 0과 1로 변환하는 과정을 문자 인코딩(character encoding)이라고 한다.

반대로 0과 1을 문자로 변환하는 과정을 문자 디코딩(character decoding)이라고 한다.

아스키 코드(ASCII)

초창기 문자 집합.

하나의 아스키 문자를 나타내기 위해서 8비트를 사용한다.

그중 1비트는 오류 검출을 위한 패리티 비트(parity bit)이고 나머지 7비트로 문자를 표현한다.

따라서 총 128개의 문자를 표현할 수 있다.

 

*아스키 코드표

 

ASCII - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문

ko.wikipedia.org

 

아스키 코드는 표현하지 못하는 언어가 많다.

그래서 더 많은 문자를 표현할 수 있는 문자 집합과, 그에 맞는 인코딩 방식인 EUC-KRCP949가 등장했다.

 

하지만 여전히 표현하지 못하는 문자가 많고, 언어마다 인코딩 방식이 달라 불편함이 있었다.

이런 불편함 때문에 유니코드가 등장했다.

유니코드는 대부분 나라의 문자, 특수문자, 이모티콘 등을 표현할 수 있어서 현대에 가장 많이 사용되는 문자 집합이다.

인코딩 방법으로는 UTF-8이 가장 대중적으로 사용된다.

 

'CS' 카테고리의 다른 글

명령어 사이클과 인터럽트  (0) 2023.12.04
CPU  (0) 2023.11.03
명령어  (1) 2023.11.01