7.0 정수 자료형 사용하기

C 언어에서는 다양한 형태의 자료형을 제공합니다. 이번에는 정수 자료형과 부호에 대해 알아보겠습니다.

정수 자료형은 크게 char, int가 있으며 앞에 부호 키워드(signed, unsigned)와 크기(short, long)를 붙여서 특성을 정의할 수 있습니다.

  • signed: 부호 있는 정수를 표현합니다. 보통 signed 키워드는 생략합니다.
  • unsigned: 부호 없는 정수를 표현합니다. 따라서 값은 0부터 시작하게 됩니다.

다음은 정수 자료형 키워드를 조합했을 때 자료형의 크기와 저장할 수 있는 값의 범위입니다(지금은 모든 내용을 외울 필요는 없습니다. 일단 charint 정도만 기억하면 되고, 나머지는 나중에 필요할 때 찾아보세요).

표 7‑1 정수 자료형의 크기 및 범위(LLP64/IL32P64, Windows)
자료형 크기 범위 비고
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와 같이 자료형이 같다면 부호 여부에 관계 없이 크기는 같습니다. 즉, 부호 있는 정수는 음수를 포함하므로 그만큼 양수의 범위가 줄어듭니다.

그림 7‑1 정수형 크기 및 범위

LLP64/IL32P64에 대해서는 '부록 3. 데이터 모델'을 참조하기 바랍니다.

참고 | long

long은 운영체제와 플랫폼마다 크기가 다릅니다.

표 7-2 운영체제 및 플랫폼별 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