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개의 숫자가 가능합니다.
3-1. signed long int
기본적으로 signed와 long이 생략되고 int로 사용합니다.
4바이트(32비트) 크기의 자료형이며 부호가 있는 데이터를 처리할 수 있습니다.
첫 1비트는 부호 비트로 사용하고 나머지 15비트에만 숫자를 저장합니다.
2³¹ 개의 숫자를 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자리까지 저장할 수 있습니다.
'프로그래밍 언어 > C언어' 카테고리의 다른 글
[C언어 #6] 다차원 포인터 (2차원) (0) | 2024.12.05 |
---|---|
[C언어 #5] 표준 입력 함수 (getchar, getc, gets, scanf) (0) | 2024.11.28 |
[C언어 #4] 포인터 (const, void*, 형변환) (1) | 2024.11.20 |
[C언어 #3] 표준 출력 함수 (putchar, putc, puts, printf) (2) | 2024.11.19 |
[C언어 #1] 자료형 char가 한 글자만 적을 수 있는 이유 (1) | 2024.10.16 |