본문 바로가기
IT 기술/C언어 심화

컴퓨터의 자료 저장 방식

by 썬's 2023. 2. 19.

안녕하세요 보글리아입니다.

이번 시간에는 컴퓨터가 어떻게 자료를 기억하는지에 대해 알아보도록 하겠습니다.

※본 C언어 심화 카테고리는 C언어 수업 일정에 맞춰 진행되지 않습니다※

 


요약

  • 컴퓨터는 주기억 장치인 램(메모리)으로 자료를 저장한다.
  • 메모리의 최소 저장 단위는 비트(bit)다
  • 각 비트에는 0과 1이 올 수 있다.
  • 비트 수가 늘어날때마다 2의 제곱승이다.
  • 가장 맨 앞자리 비트는 부호 비트로 숫자가 양수인지 음수인지 파악한다.
  • 8비트는 1 바이트다. 즉 바이트 수가 늘어날 때마다 8비트가 추가된다.

컴퓨터가 데이터(정보)를 저장하는 공간인 메모리

컴퓨터 내에는 주기억 장치인 램(RAM)이 있습니다. 램은 보통 메모리를 의미합니다. 이 메모리는 1바이트(byte) 단위로 주소가 매겨져 있어 운영체제마다 주소를 관리하는 방법이 조금 다릅니다. 

예를 들어 윈도우 운영체제는 32(bit)를 기반으로 하기 때문에 0번 주소부터 시작에 232개의 주소까지 메모리를 사용할 수 있습니다.

 

자 여기서 운영체제가 메모리를 관리하는 단위가 1바이트이고 컴퓨터는 이보다 더 작은 비트 단위로 정보를 저장하거나 읽을 수 있습니다. 1바이트는 32비트입니다.

 


비트(bit)와 바이트(byte)

컴퓨터가 자료를 저장하는 방식인 메모리의 최소 저장 단위는 비트입니다. 컴퓨터는 0과 1을 사용해 정보를 처리하고 저장합니다. 1비트는 0과 1 중에서 한 개를 저장할 수 있는 크기입니다. 1비트가 두 개 모이면 2비트, 세 개 모이면 3비트가 됩니다. 이처럼 비트 수가 늘어날 때마다 각 비트에는 0과 1이 들어올 수 있고, 비트 수가 늘어나면 저장할 수 있는 값도 늘어납니다.

 

하단 그림을 보시면, 2비트는 각 비트에 0과 1중 한 개를 저장할 수 있고  00, 01, 10, 11 총 4개의 형태 중 한 가지로 저장할 수 있습니다. 00, 01, 10, 11을 10진수로 표현하면 0, 1, 2, 3으로 나타낼 수 있습니다. 마찬가지로 3비트도 저장할 수 있는 형태를 10진수로 나타내면, 0, 1, 2, 3, 4, 5, 6, 7입니다.

 

여기서 일종의 규칙이 보이는데요 비트 수가 늘어날 때마다 표현할 수 있는 형태가 2의 제곱 승이라는 것을 알 수 있습니다. 1비트는 21, 2비트는 22, 3비트는 23입니다. 그리고 비트 값을 10진수로 나타내면 오른쪽 끝자리는 0부터 시작이고 순차적으로 1이 추가됩니다.

 

예를 들어 00은 0입니다. 순차적으로 1이 추가되기 때문에 01은 0 다음 숫자인 1입니다. 그리고 오른쪽 끝 자리에 1이 채워졌기 때문에 다음 자리인 십의 자리에 1을 채우고 일의 자리는 0이 됩니다. 즉 10은 2입니다. 최종적으로 가장 왼쪽 끝 자리에 1이 왔기 때문에 십의 자리로 1로 맞춰주면 11은 곧 3이 됩니다.

비트(bit)
비트(bit)

즉, 10진수로 표현하면, 1비트는 숫자 2개(0-1)중 하나, 2비트는 숫자 4개(0-3)중 하나를 3비트는 숫자 8(0-7) 중 하나를 저장할 수 있는 크기입니다. 여기서 중요한 점은 숫자가 1부터 시작이 아니라 0부터 시작이라는 점을 아셔야 합니다.

 

1비트부터 시작해 비트가 총 8개 모이면 8비트고 8비트부터는 새로운 단위인 바이트(byte)를 사용합니다. 1바이트는 비트 8개로 구성된 28인 숫자 256(0-255) 중 하나를 저장할 수 있는 크기입니다.

바이트(byte)
바이트(byte)

지금까지 알아본 메모리의 최소 저장 단위인 비트는 양수였습니다.

그러면 음수인 숫자도 있기 때문에 음수를 표현하는 방법을 알아보겠습니다.

 

자 그럼 1바이트를 기준으로 음수를 표현하는 방법을 알아보겠습니다.

하단 그림을 보시면 가장 왼쪽에 있는 비트는 사실 숫자가 양수인지 음수인지 상태를 저장하고 나머지 비트 7개는 숫자를 저장합니다. 이처럼 양수와 음수를 구별하는 비트를 부호 비트라고 합니다.

 

1비트를 사용해 부호를 표현했기 때문에, 나머지 비트 7개에 데이터를 저장합니다. 7비트는 양수일 때는 숫자 128개(0 -127) 사이의 숫자 중 하나를 저장하고 음수라면 숫자 128개(-128~-1) 사이의 숫자 중 하나를 저장합니다.

그래서 1바이트는 양수 음수 포함해 총 숫자 256개(0-255)의 숫자 중 하나를 저장할 수 있는 겁니다.

 

1바이트뿐만 아니라 2비트, 3비트, 그리고 8비트보다 큰 비트인 32비트도 역시 맨 앞자리 비트는 부호를 결정하는 부호 비트입니다. 

부호 비트
부호 비트

지금까지 컴퓨터가 정보를 저장하는 메모리의 최소 저장 단위인 비트를 알아봤습니다.

이처럼 사람은 정보를 문자로 저장하지만, 컴퓨터의 램은 모든 데이터를 숫자로 저장합니다. 

그렇기에 적절한 비트를 부여해 데이터를 저장할 때 메모리를 절약해야 합니다.

 

예를 들어, 사람의 몸무게는 1kg부터 100kg 사이의 유효 범위를 가진다고 했을 때, 이를 컴퓨터 메모리를 기준으로 1바이트는 0에서 255 사이의 값을 저장할 수 있기 때문에, 1바이트 메모리 공간을 사용하면 됩니다.

굳이 요즘 메모리가 대용량으로 나온다 해서 2바이트, 3바이트를 사용하는 것은 지폐를 지갑이 아닌 가방에 보관하는 것과 같습니다.

 

이렇게 데이터를 비효율적으로 관리하면, 데이터를 전송하는 딜레이도 길어지고 비용도 많이 들게 됩니다.

그렇기에 저장할 데이터 크기에 맞는 메모리를 사용하는 것이 중요합니다.

 


오늘은 메모리의 최소 저장 단위인 비트와 바이트에 대해 알아봤습니다.

프로그래머는 이러한 데이터의 유효 범위를 파악하고 적합한 메모리를 컴퓨터에 부여해야 합니다.

그럼 긴 글 읽으시느라 너무너무 고생 많으셨습니다~~

'IT 기술 > C언어 심화' 카테고리의 다른 글

연산자 우선순위 및 연산 방향  (0) 2023.02.19
함수의 지역 변수와 전역 변수  (0) 2023.02.14

댓글