자료형 / 명칭 |
크기 |
값의 표현범위 |
|
정수형 | char |
1바이트 | -128이상 +127이하 |
short |
2바이트 |
-32,768이상 +32,767이하 |
|
int |
4바이트 |
-2,147,483,648이상 +2,147,483,647이하 |
|
long |
4바이트 |
-2,147,483,648이상 +2,147,483,647이하 |
|
long long |
8바이트 |
-9,223,372,036,854,775,808이상 |
|
+9,223,372,036,854,775,807이하 | |||
실수형 | float | 4바이트 |
±3.4 ×10^-37이상 ± 3.4 × 10^38이하 |
double |
8바이트 |
±1.7 ×10^-307이상 ± 3.4 × 10^308이하 | |
long double |
8바이트 이상 |
double 이상의 표현범위 |
구분 | 명칭 | 설명 |
부호가 있는 변수 | signed | 기본(default) 형식 |
부호가 없는 변수 | unsigned | 음수를 표현할 수 없고, 양수 값의 표현범위가 두배 정도 늘어남 |
2의보수의 규칙에 따라 한계를 넘은 값은 음수대로 이어져있고 그렇기에 -값이 된다.
하지만 %u로 unsigned로 인식하면 숫자는 올라간다. 이건 signed즉 2의보수의 규칙이기 때문이다.
unsinged의 경우 저건 음수대가 아닌 양수대 최대값이 되기떄문에 저런 현상이 발생한다.
자료형 | 크기 | 범위 | 비고 |
char signed char |
1바이트, 8비트 | -128~127 | |
unsigned char | 1바이트, 8비트 | 0~255 | |
short short int |
2바이트, 16비트 | -32,768~32,767 | int 생략 가능 |
unsigned short unsigned short int |
2바이트, 16비트 | 0~65,535 | int 생략 가능 |
int signed int |
4바이트, 32비트 | -2,147,483,648~ 2,147,483,647 | |
unsigned unsigned int |
4바이트, 32비트 | 0~4,294,967,295 | int 생략 가능 |
long long int signed long signed long int |
4바이트, 32비트 | -2,147,483,648~ 2,147,483,647 | int 생략 가능 |
unsigned long unsigned long int |
4바이트, 32비트 | 0~4,294,967,295 | int 생략 가능 |
long long long long int signed long long signed long long int |
8바이트, 64비트 | -9,223,372,036,854,775,808~ 9,223,372,036,854,775,807 |
int 생략 가능 |
unsigned long long unsigned long long int |
8바이트, 64비트 | 0~18,446,744,073,709,551,615 | int 생략 가능 |
https://docs.microsoft.com/ko-kr/cpp/c-language/c-type-specifiers?view=msvc-160
C 형식 지정자
자세한 정보: C 형식 지정자
docs.microsoft.com