bit 비트란, byte 바이트란
bit 비트
살아가면서 자주 듣는 용어인 비트(bit)와 바이트(byte)에 대해 조금 알아 보겠습니다.
bit는 컴퓨터내의 공간의 최소 단위를 뜻합니다. 불을 켜고 끄는 스위치 하나를(1 비트) 놓고 보면 스위치 하나가 할 수 있는 일은 딱 두 가지가(끄고 켜고) 있습니다. 두 가지의 일을 할 수 있으므로 가짓수는 2, 숫자로 표현하면 0과 1이 됩니다. 스위치가 두 개라고(2 비트) 가정하면 가짓수는 4, 숫자로 표현하면 0, 1, 2, 3이 됩니다.
스위치가 하나 일 때, 1비트
범위: 0 ~ 1 (0, 1)
이진수 표현: 0 or 1
가짓수는 두 개: (끄다) or (켜다)

스위치가 두 개일 때, 2비트
범위: 0 ~ 3 (0, 1, 2, 3)
이진수 표현: 00 or 01 or 10 or 11
가짓수는 4 개: (끄다, 끄다) or (끄다, 켜다) or (켜다, 끄다) or (켜다, 켜다)

여기에 각각의 가짓수에 일을 할당하고 컴퓨터나 기계에 일을 시키면 작동이 되도록 하는게 기본 원리라고 생각하시면 됩니다. 선택한 숫자가 0 이면 "문을 연다", 1 이면 "문을 닫는다", 2 이면 "전진한다", 3 이면 "후진한다" 등등의 동작을 지정해서 여러가지 일을 시킬 수 있습니다.
실생활에서는 숫자가 1 부터 시작해 1, 2, 3, … 로 범위를 표현하는 게 정상이지만 컴퓨터 세상에서는 0부터 시작합니다. 예로서 24의 가짓수는 16이고 범위 표현은 1, 2, …, 15, 16 (1 ~ 16)이 아니라 0, 1, …, 14, 15 (0 ~ 15)입니다.
스위치의 숫자는 비트 수와 같습니다. 이제부터 비트 수로 표시하겠습니다.
비트 수의 가짓수는 2n(n = 비트 수)로 표현됩니다.
비트 수에 따라 불리는 용어들
1 비트 (비트는 바이너리라고도 읽는다 bit = binary)
3 비트 = 23 = octal
4 비트 = 24 = nibble
8 비트 = 28 = byte (또는 octet)
IT에 사용되는 여러가지 용어들이 있으나 여기서는 가장 많이 사용되는 비트와 바이트만 알고 있어도 전공이 아닌 이상 대부분은 이해가 가시리라 생각됩니다.
byte 바이트
이제 비트(bit)가 이해 되었으면 바이트(byte)를 이해할 수 있습니다. 바이트는 8 비트의 한 덩어리를 1 바이트로 부릅니다.
8 비트 = 28 = 1 바이트
1 byte = 8 bits = 28, 가짓수 = 256, 범위 = 0 ~ 255
비트는 디지털 세상의 가장 최소 단위이고 바이트는 사람이 조작하는 단위로서의 최소 단위라는 개념으로 이해하면 되겠습니다. 개인적으로 생각하는 견해이므로 사람에 따라 다를 수 있습니다. 처음 미국에서 컴퓨터라는 개념이 생기기 시작할 무렵에 영어외는 생각하지 않고 만들었으므로 알파벳 52문자 (대문자 + 소문자)와 특수 기호 (!, @, #, $, ...)를 모두 포함해도 256 가짓수로 충분하다고 생각되어 바이트가 언어로 표현하기 위한 최소 단위가 되었음. 예로서 영문으로 "Hi!"를 표현할려 하면 1 바이트 범위 (0 ~ 255)내에 "H"는 72, "i"는 105, "!"는 33에 할당되어 있으므로 3 바이트를 사용하면 (72 105 33) = (H i !)로 원하는 문자를 출력할 수 있다.

최소 단위를 하나의 박스로 볼 때 박스의 사이즈가 다양하게 있다고 보고 항상 박스 사이즈는 커질 때 두 배씩 커지고 작아질 때는 1/2씩 작아진다고 본다.
1 비트 => 2 비트 => 4 비트 => 8 비트
1 바이트 (8 비트) => 2 바이트 (16 비트) => 4 바이트 (32 비트) => 8 바이트 (64 비트)
종이의 용지로 이해를 하면 많이 쓰는 A4 용지를 반으로 접은 사이즈가 A5, A4 용지를 두 배로 키운 사이즈가 A3이며 (A3 > A4 > A5) A4 사이즈 공책(100장)과 A3 사이즈의 공책(100장)에 한장당 글자를 한 자만 적을 수 있다고 가정해 100자를 적어 넣으면 각각의 공책안에 들어 있는 정보량은 똑같은데(100자) 데이터량(공책의 사이즈)은 두 배 차이가 나는 것과 똑같은 것으로 이해하면 되겠다.
컴퓨터 시스템이 32 비트(4 바이트)에서 큰 시스템으로 대체되기 시작하면서 사이즈가 두배인 64 비트(8 바이트)로 바뀐 것도 이런 연유에서이다.
bit, byte, hexadecimal이란
bit나 byte를 이진수, 십진수, 십육진수로 표현하는 경우가 많은데 십진수는 사람이 이해하기 쉬운 표현이고 컴퓨터내에서는 이진수와 십육진수로 표현되는 경우가 많다.
이진수 = bit = binary, 십진수 = decimal, 십육진수 = hexadecimal
이진수는 0와 1로만 표현
십진수는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9로 표현
십육진수는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F로 표현
(십육진수일때 쓰이는 알파벳은 A = 10, B = 11, C = 12, D = 13, E = 14, F = 15의 값으로 이해한다)
이진수의 표현

이진수의 계산

위와 같이 십진수 181는 컴퓨터내에서 이진수로 표현되어 10110101이 된다.
hexadecimal (십육진수)는 4비트(24)이고 컴퓨터가 계산하기 쉬운 단위이고 끊어 쓰기 편하므로 많이 쓰이는데 10 ~ 15 사이의 숫자는 알파벳 A ~ F로 표현되는 것에만 적응하면 이해하는데 크게 문제가 없으리라 생각한다.
이진수 = 십진수 = 십육진수
0000 = 0 = 0
0001 = 1 = 1
0010 = 2 = 2
0011 = 3 = 3
0100 = 4 = 4
0101 = 5 = 5
0110 = 6 = 6
0111 = 7 = 7
1000 = 8 = 8
1001 = 9 = 9
1010 = 10 = A
1011 = 11 = B
1100 = 12 = C
1101 = 13 = D
1110 = 14 = E
1111 = 15 = F
십육진수 (hexadecimal 또는 줄여서 hex 라고도 부름)의 몇가지 계산 예
십육진수 = 십진수
FF = [161*15] + [160+15] = 240 + 15 = 255
A8 = [161*10] + [160+8] = 160 + 8 = 168
4D = [161*4] + [160+13] = 64 + 13 = 77
23 = [161*2] + [160+3] = 32 + 3 = 35
ABCD = [163*10] + [162*11] + [161*12] + [160+13] = 40960 + 2816 + 192 + 13 = 43981
십육진수 = 십진수 = 이진수 = 비트 = 바이트
FF = 255 = 1111 1111 = 8 비트 = 1 바이트
A8 = 168 = 1010 1000 = 8 비트 = 1 바이트
4D = 77 = 0100 1101 = 8 비트 = 1 바이트
23 = 35 = 0010 0011 = 8 비트 = 1 바이트
ABCD = 43981 = 1010 1011 1100 1101 = 16 비트 = 2 바이트
하드 디스크나 메모리등의 용량 표현에 대해
여러분들이 자주 듣는 킬로 바이트, 메가 바이트, 기가 바이트, ... 용량은 앞에서 설명된 비트에서 계산되어 나온 것으로
10비트 = 210 = 10241 = 킬로 바이트
20비트 = 220 = 10242 = 메가 바이트
30비트 = 230 = 10243 = 기가 바이트
40비트 = 240 = 10244 = 테라 바이트
실제 1 메가 바이트의 사이즈는 220 = 1,048,576 비트