본문 바로가기
Programming/C

[C언어] 데이터 타입 (자료형)

by 고간디 2022. 3. 31.

데이터 타입(Data Type)이란 해당 데이터가 메모리에 어떤 형식으로 저장되고 어떻게 처리되어야 할 지를 명시적으로 알려주는 역할을 합니다

C언어에서는 여러 형태의 타입을 제공하고 있는데 이를 기본 타입이라고 합니다

크게 정수형, 실수형, 문자형으로 나눌 수 있습니다

 


정수형 타입

정수는 부호를 가지고 있지만, 소수 부분이 없는 수를 의미합니다

정수형 타입 할당 메모리 크기 표현 범위
(signed) short 2Byte -32,768 ~ 32,767
unsigned short 2Byte 0 ~ 65,535
(signed) int 4Byte -2,147,483,648 ~ 2,147,483,647
unsigned int  4Byte 0 ~ 4,294,967,296
(signed) long  4Byte -2,147,483,648 ~ 2,147,483,647
unsigned long  4Byte 0 ~ 4,294,967,296

정수형 데이터에 unsigned 키워드를 추가하면 부호를 나타내는 최상위 비트까지도 크기를 나타내는 데 사용할 수 있습니다

더보기

최상위 비트 (MSB, Most Significant Bit):

1바이트를 구성하는 8개의 비트 중 최고값을 갖는 비트

이러한 unsigned 정수는 음수를 표현할 수 없게 되지만 0을 포함한 양의 정수는 두 배 더 많이 표현할 수 있게 됩니다

음의 정수까지도 표현할 수 있는 signed 키워드는 모든 타입에서 기본적으로 생략하여 사용할 수 있습니다

 

정수형 데이터의 타입이 표현할 수 있는 범위를 벗어난 데이터를 저장하면 오버플로우가 발생해 전혀 다른 값이 저장될 수 있습니다

 

컴퓨터는 정수형 중에서 int 형의 데이터를 가장 빠르게 처리하기 때문에 보편적으로 크기에 상관없이 int형을 사용합니다

운영 체제의 환경에 따라 다른데 16비트는 2바이트, 32비트는 4바이트, 64비트 이상부터는 4바이트입니다

 


실수형 타입

실수란 소수나 지수가 있는 수를 나타내고, 정수보다 훨씬 더 넓은 표현 범위를 가집니다

실수형 타입 할당 메모리 크기 표현 범위
float 4Byte 3.4 X 10-38 ~ 3.4 X 1038
double 8Byte 1.7 X 10^(-308) ~ 1.7 X 10^308
long double double과 동일 double과 동일

컴퓨터에서 실수를 표현하는 방식에는 반드시 오차가 발생하는 기술적 한계를 지니고 있습니다

 

실수형 타입 지수의 길이 가수의 길이 유효 자릿수
float 8비트 23비트 소수 부분 6자리까지 오차 없이 표현 가능
double 11비트 52비트 소수 부분 15자리까지 오차 없이 표현 가능

정수형 타입은 일반적으로 int형을 사용했다면 실수형 타입은 일반적으로 double형을 가장 많이 사용합니다

 


문자형 타입

문자형 데이터는 문자 하나를 표현할 수 있는 타입을 의미합니다

컴퓨터는 0과 1로 이루어진 2진수 밖에 인식하지 못 하기 때문에 문자도 숫자로 표현해야 인식할 수 있습니다

따라서 어떤 문자를 어떤 숫자에 대응시킬 것인지에 대한 약속이 필요한데 가장 많이 사용되는 것이 바로 아스키코드(ASCII)입니다

 

아스키코드는 영문 대소문자를 사용하는 7비트의 문자 인코딩 방식으로 문자를 7비트로 표현하므로 총 128개의 문자를 표현할 수 있습니다

아스키 코드는 출력할 수 없는 33개의 문자, 출력할 수 있는 52개의 영문 대소문자, 10개의 숫자, 32개의 특수 문자와 1개의 공백 문자로 구성되어 있습니다

문자형 타입 할당 메모리 크기 데이터 표현 범위
(signed) char 1바이트 2^(-7) ~ 2^7
unsigned char 2바이트 0 ~ 2^(-8)

ASCII Code - The extended ASCII table (ascii-code.com)

 

ASCII Code - The extended ASCII table

The following ASCII table with hex, octal, html, binary and decimal chart conversion contains both the ASCII control characters, ASCII printable characters and the extended ASCII character set Windows-1252.

www.ascii-code.com

728x90
반응형

댓글