본문 바로가기
프로그래밍 언어/C언어

[C언어 #2] 자료형의 종류 (signed, unsigned)

by 디버그러 2024. 10. 17.

C언어의 자료형 종류에는 크게 char, int, float가 있습니다.

각각의 메모리 크기와 부호에 대해 설명하려 합니다.

 

 

1-1. signed char

기본적으로 signed가 생략되어 흔히 char라고 사용합니다.

1바이트(8비트) 크기의 자료형이며 부호가 있는 데이터를 처리할 수 있습니다.

 

첫 1비트는 부호 비트(+, -)로 사용하고 나머지 7비트에만 숫자를 저장할 수 있습니다.

2 = 128개의 숫자가 가능하기 때문에 0을 포함한 양수 128개(0~127)와 음수 128개(-1~-128)를 저장할 수 있습니다.

 

 

1-2. unsigned char

unsigned char부호 비트 없이 1바이트(8비트) 공간 전체를 숫자 저장 공간으로 사용합니다.

2 = 256 개의 숫자가 가능하기 때문에 0을 포함한 양수 256개(0~255)를 저장할 수 있습니다.

 

 

 

2-1. signed short int

기본적으로 signed, int가 생략되어 흔히 short라고 사용합니다.

short나 long은 int 앞에만 붙는 예약어이기 때문에 뒤에 오는 int를 생략해도 int인 줄 알 수 있기 때문입니다.

2바이트(16비트) 크기의 자료형이며 부호가 있는 데이터를 처리할 수 있습니다.

 

첫 1비트는 부호 비트로 사용하고 나머지 15비트에만 숫자를 저장할 수 있습니다.

2¹⁵ = 32,768개의 숫자가 가능하기 때문에 0을 포함한 양수(0~32,767)와 음수(-1~-32,768)에 저장할 수 있습니다.

 

 

2-2. unsigned short int

기본적으로 int가 생략되어 unsigned short로 사용합니다.

부호 비트 없이 2바이트(16비트) 2¹ = 65,536개의 숫자가 가능합니다.

 

▲ short 범위 초과하여 잘못된 숫자 출력

 

 

3-1. signed long int

기본적으로 signed와 long이 생략되고 int로 사용합니다.

4바이트(32비트) 크기의 자료형이며 부호가 있는 데이터를 처리할 수 있습니다.

 

첫 1비트는 부호 비트로 사용하고 나머지 15비트에만 숫자를 저장합니다.

¹ 개의 숫자를 0을 포함한 양수와 음수에 저장할 수 있습니다.

 

따라서 int는 약 -21억 ~ 21억 범위의 값을 저장할 수 있습니다.

 

 

3-2. unsigned long int

기본적으로 long이 생략되고 unsigned int로 사용합니다.

부호 비트 없이 4바이트(32비트) 크기까지 숫자를 저장할 수 있습니다.

 

따라서 unsigned int는 0 ~ 약 42억 범위의 값을 저장할 수 있습니다.

 

 

4. float

컴퓨터는 실수를 표현할 때 소수점의 위치를 고정하지 않고 소수점의 위치를 나타내는 수를 따로 적는 부동소수점 표현 방식을 사용합니다.

부동소수점은 314.159 라는 실수를 3.14159 X 10² 로 표현하는 방식입니다.

float는 가수부인 3.14159 와 지수부인 10² 의 ²로 나누어 실수 형태의 값을 저장합니다.

 

float의 저장 범위는 int와 똑같이 4바이트(32비트)입니다.

하지만 정수부와 소수부를 모두 저장해야 하기 때문에 소수점 이하 숫자가 6자리입니다.

그 범위를 넘어가면 잘못된 값을 출력합니다.

 

 

5. double

double 자료형도 메모리 공간을 가수부와 지수부로 저장하는 부동소수점 표현 방식입니다.

대신 8바이트(64비트) 크기까지 숫자를 저장할 수 있습니다.

 

64비트 기반으로 하기 때문에 소수점 이하 15자리까지 저장할 수 있습니다.