Web Development/C
[C] C 언어의 자료형 정의
devflate
2024. 8. 4. 13:31
<데이터의 크기>
bit : 컴퓨터가 처리할 수 있는 최소의 데이터 단위, 하나의 bit는 0 또는 1의 값을 가질 수 있다.
byte : 하나의 비트만으로는 값을 표현하기가 어렵기 때문에 여러개의 비트를 모아 하나의 값을 표현한다. (8bit = 1byte)
<C언어의 자료형>
자료형이란?
저장되는 데이터의 종류에 따른 형태.
사용하는 이유?
저장되는 값의 종류와 범위에 따라 다르게 표현함으로써, 컴퓨터가 데이터의 형태에 대해 인식할 수 있도록 하기 위해서
사용 방법?
종류 | 자료형 | 메모리 크기 | 값의 범위 | 상세 |
정수형 변수 | char | 8bit (1byte) | -128 ~ 128 |
최소 2byte 이상인 정수형 |
int | 32bit (4byte) | -2,147,483,648 ~ 2,147,483,647 |
최소 2byte 이상인 정수형 |
|
unsigned int | 32bit (4byte) | 0 ~ 4294967295 |
||
long long (int) | 64bit (8byte) | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 최소 8byte 이상인 정수형 |
|
short (int) | 16bit(2byte) | -32768 ~ 32767 |
최소 2byte 이상인 정수형 |
|
실수형 변수 | float | 32bit (4byte) | 3.4*10^-37 ~ 3.4*10^38 (실수) |
|
double | 64bit (8byte) | 1.7*10^-307 ~ 3.4*10^308 (실수) |
- char : 최소 8bit(1byte) 인 정수형, 256
- short (short int) : 최소 16bit (2byte)인 정수형
- int : short 보다 크고, 최소 16bit(2byte) 이상인 정수형 (int는 최소 2byte의 범위를 표현한 정수형이며, 32bit까지는 아키텍처에 따라 크기가 달라지지만, 그 이상에는 4byte로 고정된다.)
- long (long int): 최소 32bit (4byte) 이상인 정수형 OS와 어플리케이션의 bit에 따라 달라진다. windows 에서만 long의 크기가 4byte로 고정된다. (따라서 크로스플랫폼 개발 시, Windows가 포함되어 있는 환경이라면 long(int, long long)을 사용하지말고, C99 표준에서 추가된 stdint.h에 포함된 (int32_t, int64_t) 자료형을 사용하는 것을 권장한다.)OS Application Bit (binary) long size
Windwos (x86-64) 32 bit 4 byte 64 bit 4 byte OS X (x86-64) 32 bit 4 byte 64 bit 8 byte Linux (x86-64) 32 bit 4 byte 64 bit 8 byte Aix (PowerPC) 32 bit 4 byte 64 bit 8 byte HP-UX (IA-64) 32 bit 4 byte 64 bit 8 byte Solaris (Sparc) 32 bit 4 byte 64 bit 8 byte - long long (int): 8byte(64bit) 자료형 (C99 표준에 해당 타입이 추가되었다. C89 표준 정의 당시 64bit를 지원하는 아키텍처가 없었기 때문)
<singed vs unsigned>
- signed 자료형이 가질 수 있는 크기 중 최상위 비트를 부호 판별용으로 사용하기 때문에 표현할 수 있는 숫자의 범위가 좁다.
- unsigned 부호 판별이 필요없기 때문에, signed 변수보다 숫자의 범위를 더 넓게 표현할 수 있다.
<출처>
https://learn.microsoft.com/ko-kr/cpp/cpp/data-type-ranges?view=msvc-170