computer_architecture computer_science cs 컴퓨터 아키텍처 데이터 이진법 2진법 16진법

[CS/Computer Science][데이터 표현] 컴퓨터의 데이터 표현 - 데이터 단위 / 숫자 데이터 표현

Kwangjin Park

Mar 14, 2025 · 2 min read

Follow

지난 포스트에서는, 컴퓨터가 정보를 이해하는 방법 및 개략적인 컴퓨터 구조에 관해 살펴보았습니다.

이어서, 이번 포스트에서는 컴퓨터가 0 / 1만을 이용하여 어떻게 여러 가지 데이터를 표현하는지 두 번에 걸쳐서 살펴보겠습니다.(숫자/문자)

프로그램 크기의 단위

  1. 기본단위 - 비트(bit)
    • 0, 1을 나타내는 가장 작은 정보단위
    • 1비트: $2^1$개의 정보 표현(0, 1)
    • 2비트: $2^2$개의 정보 표현(00, 01, 10, 11)
    • 3비트: $2^3$개의 정보 표현(000, 001, 010, 011, 100, 101, 110, 111)
    • N비트: $2^n$개의 정보 표현

  2. 프로그램 크기의 단위
    • 프로그램의 관점
    • 1 byte = 8bit
      • 여덟 비트를 하나로 묶은 단위
      • $2^8$개의 정보 표현 가능
    • 1kB = 1000byte
    • 1MB = 1000kB
    • 1GB = 1000MB
    • 1TB = 1000GB

    • 주의: 이전 단위를 1024개 묶은 단위는 kiB, MiB, GiB, TiB로 표현

      - CPU의 관점
    • 기본 단위: 워드(word)
      • CPU가 한번에 처리할 수 있는 데이터의 크기
      • 각 CPU마다 워드의 크기는 다름 ex) A CPU는 한번에 64비트를 처리할 수 있다면, A CPU의 1워드는 64비트
      • 근래의 대부분 컴퓨터의 1워드는 32 or 64비트

데이터 - 문자표현

앞서 수차례 언급한 대로, 컴퓨터는 0과 1만 인식 → 컴퓨터는 2진법을 통해 여러 정보를 표현

2진법 vs 10진법

  1. 2진법: 숫자 1이 넘어가는 시점에 자리올림하는 표현법 (컴퓨터의 표현법)
  2. 10진법: 숫자 9가 넘어가는 시점에 자리올림하는 표현법(일반적 숫자 표현)

    • 참고) 2진법은 숫자가 너무 길어진다는 단점 ⇒ 컴퓨터는 2진법과 더불어 16진법도 함께 사용 image1
    • 16진수 표현: 아래첨자(16) or 16진수 숫자 앞에 “0x” 붙임

컴퓨터 내부에서 2진수로 소수를 나타내는 방법

  • 핵심 - "표현하고자 하는 소수와 실제 저장된 소수 간의 오차가 존재할 수 있다"
    • ex) 0.1과 0.2를 더한 결과가 0.3이 아닐 수 있음

  • 이유: 컴퓨터가 나타내는 소수 표현 방식의 정밀도에 한계가 있기 때문
    • 부동 소수점
      • 소수점이 고정되어 있지 않은 소수 표현 방식
      • (10진수) $m * 10^n$ 의 꼴로 표현 / 지수 및 가수의 쌍에 따라 같은 소수를 다양하게 표현 가능
        • 지수(exponent): $n$
        • 가수(siginificand): $m$

      • (2진수) $m * 2^n$ 의 꼴로 표현

    • 컴퓨터의 정보를 나타내는 이진수를 부동소수점으로 표현하면, 지수 및 가수를 저장해야함 → 오늘날의 대부분 컴퓨터는 IEEE 754의 방식으로 부동소수점의 지수 및 가수를 저장 image2
      • 부호: 0이면 양수, 1이면 음수
      • 가수: 정수부가 1로 통일된 수(1.XXX…)(정규화된 수)
      • 컴퓨터가 저장하는 부분: 부호 + 지수 및 가수의 소수부(fraction)(위 사진)
        • 추가로, 지수를 저장할 때에는 bias 값도 함께 저장
          • bias = $2^{k-1}-1$ ($k$: 지수의 bit 수)
        • 결과적으로, 지수값은 지수+bias 값으로 지수 자리에 저장

      • (주의) 10진수 표현 ⇒ 2진수 표현이 딱 맞아떨어지지 않을 수 있음
        • 딱 나눠떨어지지 않는 수는, 그 소수점을 무한히 저장할 수 없기 때문



이어서 다음 포스트에서 컴퓨터가 이진법으로 문자데이터를 어떻게 표현하는지 살펴보겠습니다.

chat_bubble 0

chat_bubble 댓글남기기

댓글남기기