본문 바로가기

Computer Science

[CS] 데이터 표현과 단위

컴퓨터는 '0'과 '1'의 전기신호로 소통한다.

따라서 컴퓨터를 하면서 우리가 보는 모든 데이터도
'0'과 '1'로만 이루어져 있다.

한국어에 비유를 하자면, 
'0'과 '1'은 한글의 자음과 모음,
'데이터'는 단어 또는 문장이라고 할 수 있다.

그렇다면 컴퓨터가 다루는 데이터에 대해서 알아보자.

데이터 표현과 단위

컴퓨터는 ‘0’과 ‘1’ 두개의 숫자로 이루어진 2진법 데이터만 읽고 저장할 수 있다.

2진법 신호는 전기신호로써 ‘0’은 꺼짐을, ‘1’은 켜짐을 의미한다.

 

예시) 아주 작은 메모리판의 전기신호 (검정색은 '꺼짐', 노랑색은 '켜짐')

                  
                   
                   
                   

예시) 컴퓨터에서 인식하는 데이터 표현 (꺼짐은 '0', 켜짐은 '1')

0 0 1 0
1 0 0 1
0 1 0 1
0 0 1 0

 

이 때, 한 자릿수(칸) 단위를 ‘비트(bit)’라고 한다.

 

비트 1개는 2가지 표현이 가능하고,

비트 2개는 4가지(2*2) 표현이 가능하고,

비트 3개는 8가지(2*3) 표현이 가능하고,

비트 4개는 16가지(2*4) 표현이 가능하다.

 

그리고 비트 8개는 256가지(2*8) 표현이 가능하고, 이것을 1바이트(Byte)라고 부른다.

 

바이트는 실제로 컴퓨터에서 데이터를 다루기 위한 최소한의 단위이다.

텍스트 편집기에 “sonny”라고 입력하면 파일크기는 5바이트가 된다.
즉, 1 바이트는 하나의 문자를 표현할 수 있는 단위이다.

 

 

16진법 표기

컴퓨터에게 1바이트는 최소 단위였지만, 사람들에게는 8자리 숫자였다.

그래서 2진법으로 메모리를 표현하다보니 자릿수가 길어져 가독성이 떨어졌다.

 

이를 보완하기 위해, 단순히 인간이 알아보기 쉽게 사용되도록 16진법 표기가 약속되어 만들어졌다.

 

실제 컴퓨터 내부적으로는 2진법으로 데이터를 저장하고 읽는다.

1 바이트는 다음과 같이 8개의 비트로 구성된다.

1 1 0 0 1 0 0 1

2진법으로 표기된 1 바이트(8비트) 데이터는 4비트 데이터 2개로 나누어 볼 수 있다.

이 때 4비트 데이터 단위‘니블(nibble)’이라고 한다.

 

1바이트는 16진법의 수 2개로 표현이 가능하다.

위 바이트를 니블 단위로 나누고 10진수로 표현하면, 첫 니블(1100)은 12이고, 다음 니블(1001)은 9이다.

 

이를 다시 16진수로 바꾸어보겠다.

참고로 16진수에서는 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F라고 표기한다.

 

따라서 위 바이트를 16진법 표기로 수정하면 C9로 변환된다.

 

이와 같은 16진법 표기는 RGB코드나 유니코드 등에서 쓰인다.

예시로 RGB코드의 ‘#ff00ff(15 15 0 0 15 15)’는 3바이트로써 2진법의 비트로 표현하면 24자리가 될 것이다.

 

이는 가독성이 매우 떨어지기 때문에 RGB코드와 같이 16진법으로 표기하면 우리는 보다 간단히 인식할 수 있다.

 

 

 

참고

  • 10진수를 2진수로 변환하는 방법
    • 7을 2로 소인수분해 : 7 → 111
2로 소인수분해 나머지
2 7  
2 3 1 : 세번째
  1 : 첫번째 1 : 두번째
  • 10을 2로 소인수분해 : 10 → 1010
2로 소인수분해 나머지
2 10  
2 5 0 : 네번째
2 2 1 : 세번째
  1 : 첫번째 0 : 두번째
  • 데이터 단위
    • 1024 Bytes (210) = 1K Bytes (210*8 bits)
    • 1024 K Bytes = 1M Bytes (2208 bits)
    • 1024 M Bytes = 1G Bytes (2308 bits)
    • 1024 G Bytes = 1T Bytes (2408 bits)
  • 32비트와 64비트 컴퓨터 차이
    • 32비트 컴퓨터 : CPU가 한 번에 처리할 수 있는 비트가 32개
      • 2*32개의 메모리 주소 참조 가능 → 4GB
      • 따라서 32비트 컴퓨터는 최대 4GB RAM 사용이 가능하고, 그 이상의 저장공간은 무의미하다.
    • 64비트 컴퓨터 : CPU가 한 번에 처리할 수 있는 비트가 64개
      • 2*64개의 메모리 주소 참조 가능 → 16 E Bytes (어마한 크기)
      • 64비트 컴퓨터는 4GM RAM의 40억배에 달하는 RAM 공간 사용이 가능하다.
  • 2진법에서의 음수 표현
    • 가장 첫 비트 : 부호비트(Sing Bit), 최상위 비트라고도 한다.
    • 나머지 비트 : 데이터 비트, 마지막 비트는 최하위 비트라고도 한다.
    • 음수이면 부호비트가 1이고, 양수이면 0이다.
    • 음수로 표기할 때에는 2의 보수 방식을 활용한다.
    • 예시 : 01001001  
      • 우선 위 바이트를 2의 보수(반대로 뒤집은 수)로 만든다. → 10110110
      • 이 숫자에 1을 더한다 → 10110111
    • 이 방식은 해당 양수와 음수를 더했을 때, 0이 추출되기 때문에 컴퓨터의 계산이 빠르다는 장점이 있다.
  • 1 바이트는 -128~127까지의 256가지 표현이 가능한 것이다.

 

'Computer Science' 카테고리의 다른 글

[CS] CPU와 RAM의 역할  (0) 2022.07.09