본문 바로가기

CS

데이터 단위

반응형

1) 비트(bit)

컴퓨터는 기계이다. 이 말의 의미는 생각할 수 있는 두뇌가 없다는 뜻이다. 단순히 데이터를 저장할 메모리와 이를 처리하는 연산장치, 그리고 입출력 장치로 구성되어 있다.

여기서 우선 알아야 할 것은 데이터이다. 컴퓨터는 전원을 이용한 기계이기 때문에 전원이 On되었을 때(충전) 혹은 전원이 Off(방전)되었을때의 두가지 상태만을 감지할 수 있다.

이 것은 간단히 2진수로서 표현이 있다. 2진수 한 자리는 두가지 상태의 정보를 표현 가능하다. 1과 0 이 바로 그것이다. 데이터를 저장할 메모리 소자가 충전 혹은 방전되거나 하는 상태를 기점으로 1과 0 이 세트되게 된다.

8 bit 란?

자 그럼 본격적으로 비트에 대해서 알아보자. 1개의 비트는 단순히 2가지 상태만을 저장할 수 있기에 정보 저장에 있어서 매우 단편적인 것만을 나타낼 수 있다. 그렇다면 두 자리의 비트를 쓰면 어떨까

2진수

10진수

00

0

01

1

10

2

11

3

앞의 내용과 마찬가지로 2자리의 비트는 4가지 상태의 정보를 표현할 수 있다. 그런데 컴퓨터에서는 보통 8개의 비트를 모아서 8비트를 자주 사용한다. 8비트는 0에서 255까지 모두 256개의 상태를 표현할 수 있다.

0000

0000

0

0000

1111

16

   :

:

:

1111

1111

255

2) 바이트(Byte)

이제 좀더 큰 단위의 데이터 크기를 알아보자. 앞서 말했던 비트는 실제로는 너무나 작은 단위이다. 그래서 이를 8개씩 모아서 사용하는 경우가 많다. 그리고 이것을 1 바이트(Byte)라고 부른다. 또한 1 캐릭터(charactor)라고도 한다.

1 Byte

=

8 bit

2 Byte

=

16 bit

3 Byte

=

32 bit

4 Byte

=

64 bit

1 바이트는 1캐릭터라고도 불리운다. 이것은 1 바이트를 가지고 한 개의 문자(캐릭터)를 표현할 수 있기 때문이다. 물론 영어권의 경우이고 한글과 같은 동양권의 문자를 표기하기 위해서는 한 문자당 2 바이트가 사용된다. 우리의 한글 코드가 2바이트 조합형이니 완성형이니 하는 말이 있는 이유가 이 때문이다.

영어권은 정확하게 말하면 8비트(1바이트)가 아닌 7비트만으로 표현이 가능하다. 7비트의 경우 0 - 127개의 정보 표현이 가능하며, 특수 문자 및 알파벳을 표현하고도 남기 때문이다.

이런 이유로 우리의 한글과 영어권간에 원초적인 한글 솔루션 문제가 발생한다.

나중에 시간이 나면 한글 문제에 대해서 한번 다루겠다. 그때를 기대하며 여기서 이 이야기는 끝내도록 하자.

16진수표현법 :

1 Byte에 기록된 데이터의 최대 크기는 2진수로 하면 "1111 1111"이다. 실제 사용에 있어서는 이렇게 표기하지 않고 "FF"로 나타낸다. 2진수 4자리가 1개의 16진수로 표현될 수 있기 때문이다. 따라서 1 Byte는 8개의 2진수가 아닌 2개의 16진수로 표현된다. 그래서 2진수로 표기하지 않고,(물론 컴퓨터는 2진수 단위로 이해한다. 16진수는 사람이 보기 편리하기 위해 그렇게 디스플레이하여 사용하는 것 뿐이다.) 16진수로서 표기해서 사용한다.

십진수

2진수

16진수

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

0000 0000
0000 0001
0000 0010
0000 0011
0000 0100
0000 0101
0000 0110
0000 0111
0000 1000
0000 1001
0000 1010
0000 1011
0000 1100
0000 1101
0000 1110
0000 1111

00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F

3) 데이터의 크기

이제 기본적인 비트/바이트에 대한 이야기를 마쳤다. 여기에 더해서 한가지 추가하고자 한다면 워드(word)라는 것이 있다. 이것은 1 워드는 4 바이트로 이루어진다. 따라서 2 워드는 8 바이트인 셈이다.

보다 큰 데이터 크기 표현

데이터의 크기를 표현하는 방법에는 비트와 바이트, 워드가 있지만 이들이 표현할 수 있는 크기는 매우 작다. 그렇다면 보다 큰 단위는 어떻게 표현할까, 여기에는 접미어로서 붙는 단위가 있으며, 각각 K(kilo), M(mega), G(giga), T(tera) 등이다.

1024 bit

=

1Kbit

2048 Byte

=

2KByte

4096 KByte

=

4MByte

1024 MByte

=

1GByte

1024 GByte

=

1TByte

여기서 무언가 한가지 규칙을 발견할 수 있을 것이다. 바로 우리가 흔히 알고 있는 천의 단위가 컴퓨터에서는 1024라는 것이다. 기존의 1000을 기준으로 하게 된다면 많은 오차가 발생하게 된다. 이런 오차는 실제로 컴퓨터의 하드디스크에서 자주 발생한다. 하드디스크 제조회사의 저장 용량 표기와 실제 사용량이 차이가 발생하는 것은 이런 표기 방법에 따른 오차에 기인한다. 하드 제조업체들은 용량 표기를 1000을 단위로 하는 경우가 대부분이기 때문이다. 요즘 흔히 사용되는 하드디스크의 용량은 6.4GByte 때이다. 이것을 비트로 환산해 보면 어마어마한 양이 될 것이다.

* 참고 : 비트와 바이트의 표기에 있어서 필자는 소문자와 대문자를 구별하였다. 단위를 표기할 때 bit 혹은 Byte는 그 앞의 첫글자만 사용한다. 따라서 비트 혹은 바이트의 크기를 구분하는 데는 소문자인지 대문자인지를 반드시 확인해야 한다.

* 참고 : BPS, CPS

Bit per Second, Charactor per Second는 각각 초당 전송되는 바이트 혹은 캐릭터를 의미한다. 이 단위 역시 그대로 Byte로 환산될 수 있다. 1024 bps이면 초당 128 Byte를 전송한다는 의미이다.

 

출처 : https://kbench.com/?q=node/2635

반응형

'CS' 카테고리의 다른 글

.inc 파일이란 무엇인가?  (0) 2020.11.30
MP3의 원리(저장용)  (0) 2020.11.12
Sampling Rate, Bit Rate, Channels  (0) 2020.11.01
FFMPEG이 플레이어로써 하는 일(저장용)  (0) 2020.08.28
Youtube V3 Search API  (0) 2020.05.18