C언어 : 3. 데이터형

2026. 5. 18. 12:49·C/Study

안녕하세요.

이번에는 데이터형에 대한 정리를 해보겠습니다.

1. 데이터형 한 눈에 보기

C 데이터형 키워드

int 4byte 정수형
short 2byte 정수형
long 8byte 정수형
(Windows 는 4byte)
char 1byte 정수형
signed 부호있는 정수형
unsigned 부호없는 정수형
_Bool 1byte 정수형
(이론상 1bit)
float 4byte 부동소수점형
double 8byte 부동소수점형

2. 정수형(Integer)

더보기

1. int

 1) 의미

  • int 는 부호가 있는 정수(signed integer)을 의미합니다.
  • 따라서 반드시 정수여야 하며 양수, 음수, 0 이 될 수 있습니다.
  • 일반적으로 int 는 4byte( -2,147,483,648 ~ 0 ~ 2,147,483,647)를 차지합니다.

2. short(short int)

 1) 의미

  • short 는 부호가 있는 정수(signed short integer)을 의미합니다.
  • short 는 int 형보다 더 작은 기억 공간을 사용하는 정수형입니다.
  • 일반적으로 short 는 2byte(-32768 ~ 0 ~ 32767)를 차지합니다.

3. long(long int)

 1) 의미

  • long 은 부호가 있는 정수(signed long integer)를 의미합니다.
  • long 은 int 형보다 더 많은 기억 공간을 사용하는 정수형입니다.
  • 일반적으로 long 은 8byte(-9,223,372,036,854,775,808 ~ 0 ~ 9,223,372,036,854,775,807)를 차지합니다.(Windows 에서는 호환성 문제로 int 와 크기가 같습니다.)

4. unsigned(unsigned int)

 1) 의미

  • unsigned 는 부호가 양수인 정수(unsigned integer)을 의미합니다.
  • signed(부호가 있는) 정수보다 더 많은 양수를 표현할 수 있습니다.
  • 32비트 기준 : signed(-2,147,483,648 ~ 0 ~ 2,147,483,647) / unsigned(0 ~ 4,294,967,295)

5. OverFlow / UnderFlow

 1) 발단

  • 만약 각 정수형이 나타낼 수 있는 범위를 벗어난 숫자를 사용하게 되면 어떻게 될까요?
  • 프로그램이 터져버릴까요? 아쉽게도 그럴 일은 없다고 하네요..

 2) OverFlow

  • 결론 : 첫 값으로 다시 시작
  • int : -2,147,483,648 ~ 2,147,483,647 까지의 정수를 저장할 수 있는데, 2,147,483,647 인 최대값에 +1 이 된 2,147,483,648 이 들어간다면 값은 -2,147,483,648 로 나오게 됩니다.(signed integer 의 첫번째 값은 -2,147,483,648 이기 때문입니다.)
  • unsigned int : 0 ~ 4,294,967,295 까지의 정수를 저장할 수 있는데, 4,294,967,295 인 최대값에 +1 이 된 4,294,967,296 이 들어간다면 값은 0 으로 나오게 됩니다.(unsigned integer 의 첫번째 값은 0 이기 때문입니다. )

 3) UnderFlow

  • 결론 : 마지막 값으로 다시 시작
  • short : -32768 ~ 32767 까지의 정수를 저장할 수 있는데 -32768 인 최소값에 -1 이 된 -32769 가 들어간다면 값은 32767 로 나오게 됩니다.(signed short integer 의 마지막 값은 32767 이기 때문입니다.)
  • unsigned short : 0 ~ 65535 까지의 정수를 저장할 수 있는데, 0 인 최소값에 - 1 이 된 - 1 이 들어간다면 값은 65535 로 나오게 됩니다.(unsigned short integer 의 마지막 값은 65535 이기 때문입니다.)

 4) 안전장치

  • 위에서 말한 것처럼 OverFlow 나 UnderFlow 가 발생한 경우 프로그램은 터지지 않고 개발자에게 알려주지 않습니다.
  • 따라서 이러한 경우를 방지하는 안전장치를 항상 마련해두는 것이 중요합니다.
  • 그래서 실제 코드 작성할 때는 항상 함수의 가장 위에서 위 OverFlow, UnderFlow 를 검사하는 부분이 있는 경우가 많습니다.

2.1 문자형(Character)

더보기

1. char

 1) 의미

  • char 는 글자 등의 문자를 나타내는데 사용하는 데이터형입니다.
  • char 는 부호가 있는 정수(signed char)를 의미합니다.
  • 일반적으로 char 는 1byte(-128 ~ 0 ~ 127)를 차지합니다.

 2) 정수형

  • char 는 문자를 나타내는데 사용되지만, 기술적으로 봤을 때는 정수형입니다.
  • 실제로는 문자를 저장하는 것이 아니라 정수를 저장하기 때문입니다.
  • 다만 해당 정수들을 문자로 나타낼 수 있는 약속 코드 값을 사용하는 것 뿐입니다.
  • 이러한 약속 코드 값 중 유명한 것이 아스키(ASCII) 코드입니다.

 3) 아스키(ASCII) 코드

  • 아스키 코드는 0 부터 127 까지의 정수로 이루어져 있습니다.
  • 위의 각 정수와 대응되는 문자코드가 있습니다.
  • 대표적으로 아스키 코드에서 정수 65는 대문자 A 를 나타냅니다.

※ 마지막에 아스키 표를 첨부합니다.

2.2 부울(Boolean)

더보기

1. _Bool

 1) 의미

  • _Bool 은 논리값 true 와 false 를 나타내는 값을 저장하는 데이터형입니다.
  • 이는 C 의 제어문과 루프에서 자주 사용되는 논리값입니다.

 2) 정수형

  • _Bool 은 값 1(true)과 0(false)를 사용하기에 기술적으로 정수형입니다.

2.3 고정 폭 정수형

더보기

1. 고정 폭 정수형

 1) 발단

  • 이전에 long 형의 경우 리눅스는 64비트이지만 윈도우는 32비트를 사용한다고 했습니다.
  • 이처럼 운영체제나 시스템마다 데이터형의 크기가 다른 경우가 있습니다.
  • 이는 정수형 OverFlow 나 UnderFlow 처럼 정수가 매우 커지거나 작아지는 경우 문제가 생깁니다.

 2) 의미

  • 어떤 곳이든 같은 크기를 사용할 수 있도록 정의한 데이터형이 고정폭 데이터형입니다.

 3) 헤더파일(stdint.h)

  • 이러한 고정 폭을 정의하기 위해서는 헤더파일이 필요합니다.
  • C 언어에서는 <stdint.h> 헤더파일을 사용합니다.

 4) 종류

  • int8_t : 8bit(1byte) 크기
  • int16_t : 16bit(2byte) 크기
  • int32_t : 32bit(4byte) 크기
  • int64_t : 64bit(8byte) 크기

2.4 정수표현

더보기

1. 정수표현이란?

  • C 언어에서 정수표현을 하는경우 사용하는 정수형 상수는 10진수입니다.
  • 하지만 상수를 정의할 때에는 8진수나 16진수로 표현되기도 합니다.
  • 이 경우 표현방법이 다릅니다.

2. 8진수

int num = 16; // 10진수 16
int num = 020; // 8진수 16
  • 접두사에 0을 붙입니다.

 3. 16진수

int num = 16; //10진수 16
int num = 0x10; //16진수 16
  • 접두사에 x0을 붙입니다.

3. 부동소수점형(float, double)

더보기

1. 부동소수점형이란?

 1) 의미

  • 부동소수점형은 수학에서 말하는 실수(0.1, 3.16E7 등)를 말합니다.

 2) 구조

  • 부동소수점형은 부호부와 지수부와 가수부를 가지고 있습니다.
  • 부호부는 양수와 음수인지를 판별합니다.
  • 지수부는 소수점의 위치를 결정합니다.
  • 가수부는 실제 수를 저장합니다.

2. float

 1) 크기

  • 일반적으로 크기는 4byte(32bit)입니다.

 2) 구조

  • 1bit -> 부호부
  • 8bit -> 지수부
  • 23bit -> 가수부

3. double

 1) 크기

  • 일반적으로 크기는 8byte(64bit)입니다.

 2) 구조

  • 1bit -> 부호부
  • 11bit -> 지수부
  • 52bit -> 가수부

+) ASCII 표

더보기

1. 제어문자

10진수(DEC) 문자 의미
0 NUL NULL
1 SOH 헤더시작
2 STX 본문 시작
3 ETX 본문 종료
4 EOT 전송 종료
5 ENQ 응답 요구
6 ACK 긍정 응답
7 BEL 경고음
8 BS 백스페이스
9 HT 수평 탭
10 LF 개행
11 VT 수직 탭
12 FF 다음 페이지
13 CR 복귀(캐리지 리턴)
14 SO 확장문자 시작
15 SI 확장문자 종료
16 DLE 전송 제어 확장
17 DC1 장치 제어 1
18 DC2 장치 제어 2
19 DC3 장치 제어 3
20 DC4 장치 제어 4
21 NAK 부정 응답
22 SYN 동기
23 ETB 전송블록 종료
24 CAN 무시
25 EM 매체 종료
26 SUB 치환
27 ESC 제어기능 추가
28 FS 파일경계 할당
29 GS 레코드 그룹경계 할당
30 RS 레코드 경계 할당
31 US 장치 경계 할당
127 DEL 삭제

2. 숫자 및 특수문자

10진수(DEC) 문자
32 SPACE
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
91 [
92 \
93 ]
94 ^
95 _
96 '
123 {
124 |
125 }
126 ~

3. 영어 대문자

10진수(DEC) 문자
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z

4. 영어 소문자

10진수(DEC) 문자
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z

'C > Study' 카테고리의 다른 글

C 언어 : 6. 루프 제어문  (0) 2026.05.19
C언어 : 5. 연산자  (0) 2026.05.19
C언어 : 4. 문자열과 입출력  (0) 2026.05.18
C언어 : 2. 첫 프로그램으로 보는 구조  (0) 2026.05.18
C언어 : 1. C 언어에 대하여  (0) 2026.05.17
'C/Study' 카테고리의 다른 글
  • C언어 : 5. 연산자
  • C언어 : 4. 문자열과 입출력
  • C언어 : 2. 첫 프로그램으로 보는 구조
  • C언어 : 1. C 언어에 대하여
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
C언어 : 3. 데이터형
상단으로

티스토리툴바