7.0 정수 자료형 사용하기
C 언어에서는 다양한 형태의 자료형을 제공합니다. 이번에는 정수 자료형과 부호에 대해 알아보겠습니다.
정수 자료형은 크게 char, int가 있으며 앞에 부호 키워드(signed, unsigned)와 크기(short, long)를 붙여서 특성을 정의할 수 있습니다.
- signed: 부호 있는 정수를 표현합니다. 보통 signed 키워드는 생략합니다.
- unsigned: 부호 없는 정수를 표현합니다. 따라서 값은 0부터 시작하게 됩니다.
다음은 정수 자료형 키워드를 조합했을 때 자료형의 크기와 저장할 수 있는 값의 범위입니다(지금은 모든 내용을 외울 필요는 없습니다. 일단 char와 int 정도만 기억하면 되고, 나머지는 나중에 필요할 때 찾아보세요).
자료형 | 크기 | 범위 | 비고 |
---|---|---|---|
char signed char |
1바이트, 8비트 | -128~127 | |
unsigned char | 1바이트, 8비트 | 0~255 | |
short short int |
2바이트, 16비트 | -32,768~32,767 | int 생략 가능 |
unsigned short unsigned short int |
2바이트, 16비트 | 0~65,535 | int 생략 가능 |
int signed int |
4바이트, 32비트 | -2,147,483,648~ 2,147,483,647 | |
unsigned unsigned int |
4바이트, 32비트 | 0~4,294,967,295 | int 생략 가능 |
long long int signed long signed long int |
4바이트, 32비트 | -2,147,483,648~ 2,147,483,647 | int 생략 가능 |
unsigned long unsigned long int |
4바이트, 32비트 | 0~4,294,967,295 | int 생략 가능 |
long long long long int signed long long signed long long int |
8바이트, 64비트 | -9,223,372,036,854,775,808~ 9,223,372,036,854,775,807 |
int 생략 가능 |
unsigned long long unsigned long long int |
8바이트, 64비트 | 0~18,446,744,073,709,551,615 | int 생략 가능 |
주요 정수 자료형의 크기와 범위를 그림으로 표현하면 다음과 같은 모양이 됩니다. 여기서 int, unsigned int와 같이 자료형이 같다면 부호 여부에 관계 없이 크기는 같습니다. 즉, 부호 있는 정수는 음수를 포함하므로 그만큼 양수의 범위가 줄어듭니다.
LLP64/IL32P64에 대해서는 '부록 3. 데이터 모델'을 참조하기 바랍니다.
참고 | long
long은 운영체제와 플랫폼마다 크기가 다릅니다.
운영체제 | CPU(플랫폼) | 바이트 크기 | 비트 크기 |
---|---|---|---|
Windows | x86(32비트) | 4 | 32 |
x86-64(64비트) | 4 | 32 | |
리눅스 | x86(32비트) | 4 | 32 |
x86-64(64비트) | 8 | 64 | |
OS X | x86(32비트) | 4 | 32 |
x86-64(64비트) | 8 | 64 |