C 언어 정수형 데이터 타입 정리: int, short, long, unsigned
C 언어에서 정수형(Integer Type) 데이터는 프로그램에서 수를 표현할 때 필수적인 요소입니다. 하지만 데이터 타입에 따라 크기, 표현 범위, 부호(Sign) 여부가 달라지기 때문에, 이를 정확히 이해하는 것이 중요합니다.
목차
- int: 기본 정수형
- short: 작은 크기의 정수형
- long: 큰 크기의 정수형
- unsigned: 부호 없는 정수형
- 정수형 데이터 타입 크기 비교
- 정수형 데이터 타입 사용 예제
- 정리 및 선택 가이드
1. int: 기본 정수형
int
는 C 언어에서 가장 기본적인 정수형 데이터 타입입니다. 시스템 및 컴파일러에 따라 크기가 다를 수 있지만, 일반적으로 4바이트(32비트)를 차지합니다.
- 기본 크기: 대부분의 시스템에서 4바이트 (32비트)
- 표현 범위: -2,147,483,648 ~ 2,147,483,647 (부호 있는 경우)
- 기본적으로 부호 있는 값(signed)으로 사용됨
예제 코드
#include <stdio.h>
int main() {
int num = 100;
printf("정수 값: %d\n", num);
return 0;
}
2. short: 작은 크기의 정수형
short
타입은 정수형 데이터 중에서도 가장 작은 크기를 가지며, 메모리를 절약하면서도 작은 범위의 정수를 저장할 때 유용합니다. 주로 메모리가 제한적인 환경(예: 임베디드 시스템)에서 많이 사용됩니다.
특징
- 기본 크기: 일반적으로 2바이트(16비트)
- 부호 있는 경우 범위: -32,768 ~ 32,767
- 부호 없는 경우 범위: 0 ~ 65,535
- 일반적인 활용: 작은 숫자를 다루는 경우, 메모리 최적화 필요 시
예제 코드
#include <stdio.h>
int main() {
short s = 32000;
printf("short 타입의 값: %d\n", s);
return 0;
}
위 예제에서 short
변수 s
는 32,000을 저장하고 있습니다. 하지만 32,767을 초과하는 값을 할당하면 오버플로우가 발생할 수 있습니다.
3. long: 큰 크기의 정수형
long
타입은 기본 int
보다 더 많은 데이터를 저장할 수 있도록 설계된 정수형 타입입니다. 큰 숫자를 다루는 프로그램(예: 파일 크기, 시간 계산 등)에서 유용하게 사용됩니다.
특징
- 기본 크기: 최소 4바이트(32비트), 일부 시스템에서는 8바이트(64비트)
- 부호 있는 경우 범위: (32비트) -2,147,483,648 ~ 2,147,483,647 / (64비트) -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
- 부호 없는 경우 범위: 해당 크기의 두 배
- 일반적인 활용: 파일 크기, 시간 계산, 데이터베이스 인덱스
예제 코드
#include <stdio.h>
int main() {
long largeNum = 1000000000L;
printf("long 타입의 값: %ld\n", largeNum);
return 0;
}
long
타입을 사용할 때는 "%ld" 서식 지정자를 사용하여 출력해야 합니다. 일부 시스템에서는 long
이 8바이트(64비트)로 확장될 수 있으므로, 크기를 확인하는 것이 중요합니다.
4. unsigned: 부호 없는 정수형
unsigned
키워드는 정수형 데이터 타입 앞에 붙여 사용되며, 부호(음수)를 제거하고 양수만 표현할 수 있도록 해줍니다. 이를 통해 같은 크기의 메모리에서 더 큰 숫자를 표현할 수 있습니다.
특징
- 기본적으로 0 이상의 정수만 저장
- 사용 가능한 데이터 타입:
unsigned short
,unsigned int
,unsigned long
- 표현 범위 증가: 부호 있는 정수형의 두 배 범위를 표현 가능
예제 코드
#include <stdio.h>
int main() {
unsigned int positiveNum = 4000000000;
printf("unsigned int 값: %u\n", positiveNum);
return 0;
}
부호가 없기 때문에 음수 값을 저장할 수 없습니다. 예를 들어, unsigned int
에 -1을 저장하면 예상치 못한 값이 나올 수 있습니다.
5. 정수형 데이터 타입 크기 비교
아래 표는 일반적인 시스템에서의 정수형 크기와 표현 범위를 보여줍니다.
타입 | 크기 (바이트) | 부호 있는 경우 범위 | 부호 없는 경우 범위 |
---|---|---|---|
short | 2 | -32,768 ~ 32,767 | 0 ~ 65,535 |
int | 4 | -2,147,483,648 ~ 2,147,483,647 | 0 ~ 4,294,967,295 |
long | 4 ~ 8 | 시스템에 따라 다름 | 시스템에 따라 다름 |
6. 정수형 데이터 타입 사용 예제
아래는 다양한 정수형 데이터를 활용하는 예제입니다.
#include <stdio.h>
int main() {
short s = 100;
int i = 1000;
long l = 1000000;
unsigned int u = 4000000000;
printf("short: %d\n", s);
printf("int: %d\n", i);
printf("long: %ld\n", l);
printf("unsigned int: %u\n", u);
return 0;
}
7. 정리 및 선택 가이드
각 데이터 타입을 언제 사용하는 것이 좋을까요?
- short: 작은 정수 저장 시 (메모리 절약 필요)
- int: 일반적인 정수 연산
- long: 더 큰 숫자를 다룰 때
- unsigned: 음수를 허용하지 않을 때
데이터 타입을 적절히 선택하면 메모리 절약과 성능 최적화를 동시에 달성할 수 있습니다.
'프로그래밍 언어 > C' 카테고리의 다른 글
C 언어 문자형 데이터 타입 정리, char의 개념과 활용법 (0) | 2025.04.03 |
---|---|
C 언어 실수형(Floating-Point Types) 이해하기, 정밀도와 메모리 크기 비교 (0) | 2025.03.28 |
C언어의 사용자 정의 데이터 타입, typedef와 struct 활용법 (0) | 2025.03.16 |
C언어 변수와 상수, 차이점과 올바른 사용법 (0) | 2025.03.10 |
C언어 리터럴(Literal), 프로그래밍에서 데이터 표현하기 (0) | 2025.03.04 |