기본 자료형(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 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언어의 정석, 남궁 성 지음, 도우출판
'Programming > C언어' 카테고리의 다른 글
[C언어] 컴파일러별로 지원하는 자료형의 크기 체크하기 (0) | 2017.02.22 |
---|---|
[C언어] 변수 값 교환하기 (임시 저장소) (0) | 2016.12.11 |
[C언어] 변수(Variable) (0) | 2016.12.11 |
[C언어] 한글 이름 출력, 개행(줄바꿈 문자) (0) | 2016.12.08 |
[C언어] Hello World! (0) | 2016.12.08 |