본문 바로가기
운영체제

이진 데이터 표현

by oobw 2023. 10. 19.

컴퓨터 과학에서의 가장 기본적인 개념 중 하나는 이진 데이터 표현입니다. 이번 포스팅에서는 컴퓨터가 0과 1로 구성된 이진 데이터를 어떻게 해석하는지 알아보겠습니다.

 

이진 데이터 개요

현대 컴퓨터는 정보를 저장하고 처리하기 위해 다양한 저장 매체를 활용합니다. 예를 들면, 자기 디스크, 광 디스크, 플래시 메모리, 테이프 및 기타 전기 회로와 같은 매체들이 있습니다. 이러한 저장 매체가 동작할 때, 예를 들면 레이저가 DVD 표면을 스캔하거나 디스크 헤드가 자기 플래터를 읽을 때, 그 결과로 나오는 것은 일련의 전기 신호입니다. 이 신호는 효율성과 단순성을 위해 이진 형태로 표현됩니다. 즉, 신호는 '전압 없음'(0으로 해석됨) 또는 '전압 있음'(1로 해석됨)의 두 가지 상태 중 하나를 가집니다. 이 0과 1의 조합은 컴퓨터의 모든 정보와 지식을 인코딩하는 방법입니다.

 

이진수에서, 각 신호는 정보의 한 '비트'를 나타냅니다. 이렇게 단순한 0과 1만을 사용하여 인터넷상의 거대한 데이터, 이미지, 영상 등 모든 정보를 표현할 수 있습니다. 정보의 복잡성이 증가함에 따라 이를 표현하기 위한 비트 수도 그에 따라 증가하게 됩니다. 그러나 N 비트의 시퀀스는 2^N 개의 고유한 값을 표현할 수 있기 때문에, 비트의 수가 증가할수록 표현할 수 있는 값의 범위는 기하급수적으로 늘어납니다.

 

아래 그림은 비트 시퀀스의 길이가 증가함에 따라 표현 가능한 값의 수가 증가하는 것을 보여줍니다. 예를 들어, 하나의 비트는 0과 1, 총 두 가지 값을 나타낼 수 있습니다. 두 비트를 사용하면 00, 01, 10, 11 총 네 가지의 고유한 값을 표현할 수 있습니다. 이런 식으로 비트 수가 늘어날 때마다 표현 가능한 값의 수는 빠르게 증가하는데, 이것은 이진 데이터 표현의 강력함을 보여줍니다.

단일 비트 자체는 많은 정보를 나타내지 못하지만, 이러한 비트를 조합하면 복잡한 데이터도 표현이 가능해집니다. 스토리지 시스템에서는 더 풍부한 정보를 표현하기 위해 일련의 비트를 그룹화합니다. 이러한 그룹 중 하나는 8비트로 구성된 '바이트'입니다. 바이트는 2^8, 즉 256개의 고유한 값(0-255)을 나타낼 수 있어 영문자나 기본 구두점 등을 표현하는 데 적합합니다. 바이트는 메모리에서 주소를 지정할 수 있는 가장 작은 단위로, 프로그램은 8비트 미만의 메모리를 변수로 할당 요청할 수 없습니다.

 

최신 CPU들은 기본적으로 데이터의 '워드' 크기를 32비트나 64비트로 정의합니다. 워드의 크기는 해당 컴퓨터 시스템에서 데이터를 한 위치에서 다른 위치로 전송할 때의 기본 단위를 나타냅니다. 이런 더 큰 비트 시퀀스는 프로그램이 256보다 큰 숫자를 계산하거나 처리할 필요가 있을 때 특히 유용합니다.

 

C언어로 프로그래밍할 때 변수를 사용하기 전에 반드시 선언해야 합니다. 이 선언은 해당 변수가 얼마나 많은 비트를 사용하는지와 그 비트들을 어떻게 해석해야 하는지에 대한 정보를 컴파일러에게 알려줍니다. 모든 데이터는 컴퓨터 메모리에 비트로 저장되지만, 그 비트들이 어떤 의미를 가지는지는 특정 규약 또는 표준에 따라 달라집니다.

 

예를 들어, 텍스트 데이터는 ASCII(American Standard Code for Information Interchange) 인코딩 표준을 사용하여 저장될 수 있습니다. ASCII는 8비트 비트 시퀀스를 문자와 일치시키는 방식을 정의합니다. 그림, 오디오 등 다양한 미디어 데이터도 이진 코드로 인코딩 될 수 있습니다.

 

또한 동일한 비트 시퀀스는 다양한 해석을 가질 수 있습니다. 예를 들어, 비트 시퀀스 '01011010'은 텍스트 편집기에서는 'Z' 문자로 해석될 수 있지만, 그래픽 프로그램에서는 다른 의미를 가질 수 있습니다. 결국, 비트 시퀀스의 해석은 해당 데이터를 처리하는 프로그램의 콘텍스트와 관련이 있습니다.

 

컴퓨터 시스템에서 모든 정보는 0과 1로 표현되며, 그 정보의 해석은 해당 데이터를 사용하는 프로그램과 그 프로그램을 실행하는 사용자에게 달려있습니다. 이러한 사실은 컴퓨터 과학과 정보 처리의 기본 원칙 중 하나입니다.

 

이진 데이터 타입들

이진 데이터로 표현될 수 있는 다양한 데이터 타입들과 각각의 예에 대해 알아봅니다.

1. 텍스트 데이터

  • ASCII: 이진 데이터를 사용하여 영문 알파벳, 숫자, 구두점 및 제어 문자를 표현하는 인코딩 방식입니다.
    • : 'A'는 01000001로, '9'는 00111001로 표현됩니다.
  • UTF-8: 다양한 언어와 기호를 포함한 전세계의 모든 문자를 표현하기 위해 개발된 유니코드 인코딩 방식입니다.
    • : 한글 '가'는 11100010 10001000 10000001로 표현됩니다.

2. 숫자 데이터

  • 정수: 컴퓨터 내부에서는 부호 비트와 2의 보수 방식을 사용하여 정수를 표현합니다.
    • : 정수 5는 00000101로 표현됩니다.
  • 실수: 부동 소수점 방식을 사용하여 소수점 아래의 값까지 표현합니다.
    • : 5.25는 01000000101010000000000000000000으로 표현될 수 있습니다.

3. 그래픽 및 이미지 데이터

  • 비트맵: 각 픽셀의 색상을 이진 데이터로 표현하는 방식입니다.
    • : 24비트 RGB에서 빨간색은 11111111 00000000 00000000로 표현됩니다.
  • 벡터: 수학적 함수와 방정식을 사용하여 이미지를 표현합니다.
    • : 원을 표현하는 벡터 방정식은 (x-a)² + (y-b)² = r²입니다.

4. 오디오 데이터

  • PCM (Pulse Code Modulation): 아날로그 신호를 디지털 데이터로 변환하는 방식입니다. CD 오디오에서 주로 사용됩니다.
    • : 음악 CD에서는 16비트, 44.1kHz로 샘플링됩니다.
  • MP3, AAC, FLAC: 오디오 데이터를 압축하여 표현하는 인코딩 방식들입니다.
    • : 3분 길이의 노래는 MP3 형식으로 약 3MB의 크기를 가질 수 있습니다.

5. 동영상 데이터

  • 비디오 코덱: H.264, H.265, VP9 등의 알고리즘을 사용하여 동영상 데이터를 압축하고 이진 데이터로 표현합니다.
    • : 1080p 품질의 2시간 영화는 약 2GB의 크기를 가질 수 있습니다.

6. 메타 데이터

  • 파일 시스템, 데이터베이스, 웹 페이지 등에서 사용되는 데이터의 구조, 관계, 속성 등의 정보를 이진 데이터로 표현합니다.
    • : JPEG 이미지 파일의 메타데이터는 촬영 장비, 촬영 날짜, GPS 위치 정보 등을 포함할 수 있습니다.

7. 압축 데이터

  • ZIP, RAR, GZIP: 데이터의 크기를 줄이기 위해 다양한 압축 알고리즘을 사용하여 이진 데이터로 표현합니다.
    • : 100MB의 문서 파일들을 ZIP 압축하면, 약 70MB의 크기로 줄어들 수 있습니다.

 

이번 글에서는 이진 데이터에 대해서 기본적인 콘셉트에 대해서 소개하였습니다. 컴퓨터와 다양한 디지털 기기에서 사용되는 데이터는 모두 이진 데이터로 변환되어 저장, 전송, 처리됩니다. 이진 데이터의 원리를 이해하면 다양한 데이터 타입과 그 처리 방법을 더 깊게 파악할 수 있습니다.