본문 바로가기

Programming/C언어

[C언어] 기본 자료형(data type)의 크기와 범위

기본 자료형(data type)의 크기와 범위


 프로그램 언어에서 값을 다룰 때, 값의 종류에 따라서 저장 공간의 크기, 저장하는 방법 등이 결정하게 된다. 즉, 변수 선언할 때 지정한 자료형에 따라서 변수가 차지하는 저장공간의 크기, 변수의 저장방법 등이 결정하게 된다.


자료형(data type)이 제공하는 정보

- 변수가 차지하는 저장공간의 크기

- 변수의 저장방법


 C언어가 제공하는 기본형 타입들은 문자형(char), 정수형(short, int, long, long long), 실수형(float, double, long double)이 있다. 자료형마다 크기와 범위는 아래 표와 같다.


문자형 크기와 범위

자료형

크기

범위

bit

byte

char

8

1

-128 ~ 127 (-2^7 ~ 2^7-1)

*char는 단 하나의 문자를 저장하는 자료형이지만 실제로는 '정수(문자코드)'가 저장된다. 그리고 여러 문자를 저장하기 위해서는 문자 배열을 이용해야 한다.


char ch = 'A';    // 문자 'A'의 문자코드인 65가 변수 ch에 저장된다.

char ch = 65;


정수형 크기와 범위

자료형

크기

범위

bit

byte

short

16

2

-32,768 ~ 32,767 (-2^15 ~ 2^15-1)

int

32

4

-2,147,483,648 ~ 2,147,483,647 (-2^31 ~ 2^31-1)

long

32

4

-2,147,483,648 ~ 2,147,483,647 (-2^31 ~ 2^31-1)

long long

64

8

-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (-2^63 ~ 2^63-1)


실수형 크기와 범위

자료형

크기

 범위

정밀도

bit

byte

float

32

4

-3.4 x 10^38 ~ 3.4 x 10^38

7자리

double

64

8

-1.8 x 10^308 ~ 1.8 x 10^308

15자리

long double

64

8

-1.8 x 10^308 ~ 1.8 x 10^308

15자리


 정수형은 기본적으로 부호가 있는 정수형을 저장하지만, 양수 범위(부호가 없는)에 있는 정수를 저장할 수 있다. 타입 앞에 'unsigned'를 붙이면 된다. 음수 범위를 저장하지 않기 때문에 양수 범위가 부호 있는 정수타입의 양수 범위의 2배 정도이다.(unsigned int의 범위는 0 ~ 255)


   int i = 50;    // 부호 있는 정수 타입 변수 선언

unsigned i = 50;    // 부호 없는 정수 타입 변수 선언


 하지만 CPU의 종류에 따라서 타입의 크기가 달라질 수 있기 때문에 자기가 사용하는 환경에서 타입별 크기를 확인해야한다. sizeof 연산자를 이용하면 타입 또는 변수의 크기를 바이트 단위로 알려준다. 더 자세한 내용은 아래 포스트를 참고하길 바란다.


2017/02/22 - [Programming/C언어] - [C언어] 컴파일러별로 지원하는 자료형의 크기 체크하기


* 참고 : C언어의 정석, 남궁 성 지음, 도우출판