정수형

정의

  • Integer
  • 정수 형태의 값을 표현한다.
  • signed (부호가 있는) 형과 unsigned (부호가 없는) 형으로 표현할 수 있다.
  • 기본적으로는 signed 형태로 사용된다.

참고 - 정수형의 크기

  • 정수형은 메모리의 크기가 확정되어 있지는 않다.
  • 특히 int형의 경우, C 언어를 구현하는 컴퓨터에서 가장 효율적으로 처리할 수 있는 정수형을 가리킨다.
  • 즉, int 형은 컴퓨터에 따라 short int 일 수도 있고, long intlong long int일 수도 있다.

정수형 자료형 정리

구분 자료형 설명 크기
정수형 short int 작은 정수를 담는 자료형
0 ~ 65,535
-32,768 ~ 32,767
2
  int 일반적인 정수를 담는 자료형
컴퓨터에서 가장 효율적으로 연산할 수 있는 크기를 가진다.
2, 4, 8..
  long int 큰 정수를 담는 자료형
컴퓨터 아키텍처에 따라 4 또는 8바이트를 가진다.
아래는 4바이트인 경우
0 ~ 4,294,967,295
-2,147,483,648 ~ 2,147,483,647
4, 8..
  long long int 매우 큰 정수를 담는 자료형
0 ~ 18,466,744,073,709,551,615
(부호 있는 경우는 생략)
8

정수형 알아보기

short int

  • short int 혹은 short 라고 표현한다.
  • unsigned short 은 부호가 없는 short int 형이다.
  • 출력할 때에는 %d로 표현한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// short int (signed) 범위
short int min_short_int = SHRT_MIN;
short max_short_int = SHRT_MAX;
printf("short int 자료형의 범위(s) : %d, %d\n", min_short_int, max_short_int);

>> short int 자료형의 범위(s) : -32768, 32767

// short int (unsigned) 범위
unsigned short min_ushort_int = 0;
unsigned short max_ushort_int = USHRT_MAX;
printf("short int 자료형의 범위(us) : %d, %d\n", min_ushort_int, max_ushort_int);

>> short int 자료형의 범위(us) : 0, 65535

// short int 의 크기(메모리)
short shrt;
printf("short int 의 size : %d\n", sizeof(shrt));

>> 2

int

  • int 라고 표현한다.
  • int 형은 C 언어를 구현하는 컴퓨터가 가장 효율적으로 처리할 수 있는 메모리 크기를 가진다.
  • 출력할 때에는 %d(signed) 또는 %u(unsigned) 로 표현한다.
  • 내 경우, int 형이 4바이트를 표현하게 되어 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// int (signed) 범위
int min_int = INT_MIN;
int max_int = INT_MAX;
printf("int 자료형의 범위(s) : %d, %d\n", min_int, max_int);

>> int 자료형의 범위(s) : -2147483648, 2147483647
  
// int (unsigned) 범위
unsigned int min_uint = 0;
unsigned int max_uint = UINT_MAX;
printf("int 자료형의 범위(us) : %u, %u\n", min_uint, max_uint);

>> int 자료형의 범위(us) : 0, 4294967295

// int 의 크기(메모리)
int intig;
printf("int 의 size : %d\n", sizeof(intig));

>> int  size : 4

long int

  • long 혹은 long int 라고 표현한다.
  • 4바이트를 가지며, 큰 정수를 담을 때 사용한다.
  • 출력할 때에는 %ld(signed) 또는 %lu(unsigned)로 표현한다.
  • 내 경우, long int 형이 8바이트만큼의 범위를 표현한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// long int (signed) 범위
long int min_long_int = LONG_MIN; // long int 로 써도 되고
long max_long_int = LONG_MAX; // long 으로 써도 됨
printf("long int 자료형의 범위(s) : %ld, %ld\n", min_long_int, max_long_int);

>> long int 자료형의 범위(s) : -9223372036854775808, 9223372036854775807  

// long int (unsigned) 범위
long min_ulong_int = 0;
long max_ulong_int = ULONG_MAX;
printf("long int 자료형의 범위(us) : %lu, %lu\n", min_ulong_int, max_ulong_int);

>> long int 자료형의 범위(us) : 0, 18446744073709551615

// long int 의 크기(메모리)
long lint;
printf("long int 의 size : %d\n", sizeof(lint));

>> long int  size : 8

long long int

  • long long 혹은 long long int 로 표현한다.
  • 8바이트를 가지며, 매우 큰 정수를 담을 때 사용한다.
  • 출력할 때에는 %lld(signed) 또는 %llu(unsigned)로 표현한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// long long int (signed) 범위
long long int min_long_long_int = LLONG_MIN; // long long int 로 써도 되고
long long max_long_long_int = LLONG_MAX; // long long 으로만 써도 됨
printf("long long int 자료형의 범위(s) : %lld, %lld\n", min_long_long_int, max_long_long_int);

>> long long int 자료형의 범위(s) : -9223372036854775808, 9223372036854775807

// long long int (unsigned) 범위
long long min_ulong_long_int = 0;
long long max_ulong_long_int = ULLONG_MAX;
printf("long long int 자료형의 범위(us) : %llu, %llu\n", min_ulong_long_int, max_ulong_long_int);

>> long long int 자료형의 범위(us) : 0, 18446744073709551615

// long long int 의 크기(메모리)
long long llint;
printf("long long int 의 size : %d\n", sizeof(llint));

>> long long int  size : 8

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments