본문 바로가기
C 언어

C 언어의 모든 데이터 타입: 범위, 메모리 크기, 개념 완벽 정리

by Best Coding 2024. 12. 21.
반응형

 

 C 언어는 다양한 데이터 타입을 제공하여 효율적이고 유연한 프로그래밍을 가능하게 합니다. 이번 포스팅에서는 C 언어의 주요 데이터 타입 중 정수형, 실수형, 문자형 데이터 타입의 개념, 메모리 크기, 값의 범위를 이진수를 활용하여 설명하겠습니다.


 

1. 정수형 데이터 타입

정수형 데이터 타입은 숫자를 정수로 저장하는 데 사용됩니다. 부호 있는 타입과 부호 없는 타입이 있으며, 각각의 범위는 비트(bit) 수에 따라 결정됩니다.

반응형

정수형 데이터 타입 표

타입 메모리 크기(byte) 범위 설명
char 1 -128 ~ 127 또는 0 ~ 255 문자 저장, ASCII 사용
short 2 -32,768 ~ 32,767 작은 정수 저장
int 4 -2,147,483,648 ~ 2,147,483,647 기본 정수형
long 4 또는 8 플랫폼에 따라 다름 큰 정수 저장
long long 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 매우 큰 정수 저장

 

이진수를 활용한 범위 설명

정수형 데이터의 값 범위는 비트의 수와 부호 유무에 따라 달라집니다.

  • 부호 있는 정수 (signed): 최상위 비트(MSB)를 부호 비트로 사용하여 양수와 음수를 나타냅니다. 예를 들어, 8비트 char 타입의 경우:
    • 00000000 (0)
    • 01111111 (127)
    • 10000000 (-128)
    • 11111111 (-1)
  • 부호 없는 정수 (unsigned): 모든 비트를 값 표현에 사용합니다. 예를 들어, 8비트 unsigned char 타입의 경우:
    • 00000000 (0)
    • 11111111 (255)

이러한 이진수 구조를 통해 데이터 범위를 효율적으로 계산할 수 있습니다.


 

2. 실수형 데이터 타입

실수형 데이터 타입은 소수점이 포함된 숫자를 저장하며, 부동소수점 형식으로 표현됩니다. 이는 숫자를 **가수(Mantissa)**와 **지수(Exponent)**로 나누어 저장합니다.

실수형 데이터 타입 표

타입 메모리 크기 (byte) 값의 범위 소수점 자릿수
float 4 ~3.4E-38 ~ 3.4E+38 약 6자리
double 8 ~1.7E-308 ~ 1.7E+308 약 15자리
long double 10, 12, 또는 16 플랫폼에 따라 다름 약 18~21자리

 

이진수를 활용한 범위 설명

부동소수점은 다음과 같은 형식으로 저장됩니다:

  • 부호 비트: 숫자의 양수/음수를 나타냅니다.
  • 지수 비트: 소수점의 위치를 나타냅니다.
  • 가수 비트: 숫자의 실제 값을 저장합니다.

예를 들어, float는 32비트로 구성되며 다음과 같이 나뉩니다:

  • 부호: 1비트
  • 지수: 8비트 (값 범위는 -127 ~ 128)
  • 가수: 23비트 (정밀도를 결정)

이 형식을 통해 매우 큰 수와 매우 작은 수를 효율적으로 표현할 수 있습니다.


 

3. 문자형 데이터 타입

문자형 데이터 타입은 단일 문자를 저장하며, ASCII 코드 값을 사용합니다. char 타입은 1바이트 크기의 정수형으로 간주될 수 있습니다.

문자형 데이터 타입 표

타입 메모리 크기 (byte) 값의 범위 설명
char 1 -128 ~ 127 (signed) 또는 0 ~ 255 (unsigned) 문자 저장

 

이진수를 활용한 범위 설명

char 타입은 내부적으로 정수값으로 저장되며, 각 문자에 해당하는 ASCII 코드 값으로 변환됩니다. 예를 들어:

  • A의 ASCII 값은 65 (01000001)
  • a의 ASCII 값은 97 (01100001)
  • 0의 ASCII 값은 48 (00110000)

부호가 있는 경우에는 최상위 비트를 부호로 사용하여 음수 값도 표현할 수 있습니다.

반응형

댓글