C언어 자료형과 정수 리터럴

코딩C언어
읽는데 3분 소요
처음 쓰여진 날: 2026-02-03
마지막 수정일: 2026-02-03
조회수: 13

요약

C언어의 정수 자료형(int, long, unsigned)과 리터럴 접미사(u, l, ul)를 알아봅니다. 정보처리기사 실기에서 자주 나오는 5u, 100L 같은 표현의 의미를 정리합니다.

정수 자료형 핵심 정리

자료형크기범위
char1바이트-128 ~ 127
unsigned char1바이트0 ~ 255
int4바이트-2,147,483,648 ~ 2,147,483,647
unsigned int4바이트0 ~ 4,294,967,295
long4 ~ 8바이트시스템에 따라 다름
unsigned long4 ~ 8바이트시스템에 따라 다름

정수 리터럴 접미사

5u, 100L처럼 숫자 뒤에 붙는 문자를 접미사(suffix) 라고 합니다. 접미사는 숫자의 자료형을 명시적으로 지정합니다.

c
코드 하이라이팅 중...
접미사의미예시
u 또는 Uunsigned int5u, 100U
l 또는 Llong5l, 100L
ul 또는 ULunsigned long5ul, 100UL


char와 unsigned char

char1바이트(8비트) 크기의 정수 자료형입니다. 주로 문자를 저장하지만, 작은 정수를 저장할 때도 사용합니다.

자료형크기범위
char1바이트 (8비트)-128 ~ 127
unsigned char1바이트 (8비트)0 ~ 255

unsigned char를 쓰는 경우

unsigned char비트 연산에서 8비트 단위로 계산할 때 자주 사용합니다.

c
코드 하이라이팅 중...

~5의 결과가 int에서는 -6이지만, unsigned char에서는 250입니다. 8비트 범위(0 ~ 255)에서 모든 비트가 반전되기 때문입니다.


unsigned int를 쓰는 이유

1. 음수가 필요 없을 때

나이, 개수, 크기처럼 절대 음수가 될 수 없는 값에 사용합니다.

c
코드 하이라이팅 중...

2. 더 큰 양수 범위가 필요할 때

같은 32비트에서 int는 약 -21억 ~ +21억, unsigned int는 0 ~ 약 42억까지 표현합니다.

타입범위 (32비트 기준)
int-2,147,483,648 ~ 2,147,483,647
unsigned int0 ~ 4,294,967,295

3. 비트 연산에서 예측 가능한 결과

signed 타입에서 시프트 연산은 부호 비트 때문에 예상치 못한 결과가 나올 수 있습니다. unsigned는 항상 0으로 채워져서 결과가 명확합니다.


long을 쓰는 이유

int보다 더 큰 정수가 필요할 때 사용합니다. 시스템에 따라 int는 32비트, long은 64비트일 수 있습니다.

c
코드 하이라이팅 중...

unsigned long을 쓰는 이유

음수 없이 아주 큰 양수가 필요할 때 사용합니다. 파일 크기, 메모리 주소 등에 자주 사용됩니다.

c
코드 하이라이팅 중...

정보처리기사 실기 예시

연결 리스트 문제에서 자주 등장합니다.

c
코드 하이라이팅 중...

여기서 5u, 7u, 11u는 모두 unsigned int 타입입니다. 구조체 멤버가 unsigned int x;로 선언되어 있기 때문에 타입을 맞춰준 것입니다.