본문 바로가기

Programming/C/C++

4번째, C언어의 데이터유형에 대해 알아봅시다.

안녕하세요.  두다스입니다.

이번에는 C언어의 데이터유형에 대해서 알아보겠습니다.


[사진이 흐릿하네요, 클릭하셔서 보시면 될 듯 합니다..]

위 그림에서  빨간색으로 밑줄 친 부분인 int가 바로 C언어 데이터유형중 하나인데요

C언어의 데이터유형들을 좀 더 자세하게 알아보겠습니다.

[표 1-1] 데이터형의 종류와 값의 범위

종류

 데이터형  메모리 크기  저장 가능한 값의 범위  표현 범위

정수형

 char  1 Byte ( 8 Bit )  -128 ~ +127  양수, 0, 음수
   unsigned char  1 Byte ( 8 Bit )  0 ~ +255  양수, 0
   short  2 Byte ( 16 Bit )  -32,768 ~ +32,767  양수, 0, 음수
   unsigned short  2 Byte ( 16 Bit )  0 ~ +65,535  양수, 0
   int  4 Byte ( 32 Bit )  -2,147,483,648 ~ +2,147,483,647  양수, 0, 음수
   unsigned int  4 Byte ( 32 Bit )  0 ~+4,294,967,295 양수, 0
   long  4 Byte ( 32 Bit )  -2,147,483,648 ~ +2,147,483,647  양수, 0, 음수
   unsigned long  4 Byte ( 32 Bit )  0 ~ 4,294,967,295  양수, 0
 실수형  float  4 Byte ( 32 Bit )  1.2E-38 ~ 3.4E38  양수, 0, 음수
   double  8 Byte ( 64 Bit )  2.2E-308 ~ 1.8E308  양수, 0, 음수

데이터형의 종류들을 표로 정리하자면 저런식이 됩니다.

하지만 여기서 char 과 unsigned char 은 문자형 데이터지만 정수형 데이터에 들어가있습니다.

그 이유는 C언어에서는 문자를 ASCII(아스키)코드로 표현하는데 ASCII코드는 7 Bit로 문자를 나타나게 하는데 메모리의 기본단위가

1Byte 이기 때문에 8 Bit 로 문자를 표현합니다.

그런데 이 ASCII 코드라는 것이 2진수이기 때문에 겉으로 볼 때에는 정수와 전혀 차이가 없기때문에 C언어에서는 정수형으로 보게 되는것입니다.

정리하면, C언어에서 문자형 데이터는 1 Byte의 크기를 가지는 정수형 데이터로 생각하면 될 것입니다.


정수형 데이터형들 중에서 보면 unsigned 라는 단어가 붙은 데이터형들이 있는데 이것은 부호없는 데이터형입니다.

'저장 가능한 값의 범위' 에서 보시다시피 unsigned 라는 단어가 붙은 데이터형들은 범위가 모두 0 으로 시작합니다.

따라서 음수는 표현을 못하는 것이지요.


예를 들어서 2006이라는 숫자를 저장하기 위해서는 데이터형을 char과 unsigned char의 범위는 각각 -128~+127, 0~255 이므로

2006이라는 숫자를 저장하지는 못합니다.

따라서 char과 unsigned char을 제외한 나머지 데이터형들인

short, unsigned short, int, unsigned int, long, unsigned long 등의 데이터형으로 선언해준다면 2006이라는 숫자를 저장할 수 있습니다.

p.s. 이 글은 안랩 V스쿨 카페(http://cafe.naver.com/vgeneration)와 블로그(http://dudas.tistory.com)에만 게시합니다.