티스토리 뷰
▼ 정수 자료형의 크기 및 범위(LLP64/IL32P64, Windows)
자료형크기범위비교
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 생략 가능 |
▼ Microsoft Visual C++ 의 자료형의 형태는 아래와 같다.
Type NameBytesOther NamesRange of Values
int |
* |
signed, signed int |
System dependent |
unsigned int |
* |
unsigned |
System dependent |
__int8 |
1 |
char, signed char |
–128 to 127 |
__int16 |
2 |
short, short int, signed short int |
–32,768 to 32,767 |
__int32 |
4 |
signed, signed int |
–2,147,483,648 to 2,147,483,647 |
__int64 |
8 |
none |
–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
bool |
1 |
none |
false or true |
char |
1 |
signed char |
–128 to 127 |
unsigned char |
1 |
none |
0 to 255 |
short |
2 |
short int, signed short int |
–32,768 to 32,767 |
unsigned short |
2 |
unsigned short int |
0 to 65,535 |
long |
4 |
long int, signed long int |
–2,147,483,648 to 2,147,483,647 |
long long |
8 |
none |
–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
unsigned long |
4 |
unsigned long int |
0 to 4,294,967,295 |
enum |
* |
none |
Same as int |
float |
4 |
none |
3.4E +/- 38 (7 digits) |
double |
8 |
none |
1.7E +/- 308 (15 digits) |
long double |
same as double |
none |
same as double |
wchar_t |
2 |
__wchar_t |
0 to 65,535 |
A variable of __wchar_t designates a wide-character or multibyte character type.
By default wchar_t is a typedef for unsigned short.
▼ printf 이용 시에 사용해야 하는 서식 문자
서식문자 |
출력 대상(자료형) |
출력 형태 |
%d |
int |
부호 있는 10진수 정수 |
%u |
unsigned int |
부호 없는 10진수 정수 |
%o |
unsigned int |
부호 없는 8진수 정수 |
%x, %X |
unsigned int |
부호 없는 16진수 정수 |
%f |
float, double |
10진수 방식의 부동소수점 실수 |
%e, %E |
float, double |
e 또는 E 방식의 부동소수점 실수 |
%g, %G |
float, double |
값에 따라 %f와 %e 사이에서 선택 |
%c |
char |
값에 대응하는 문자 |
%s |
char * |
문자열 |
%p |
void * |
포인터의 주소 값 |
%n |
int * |
포인터의 주소 값 |
%lu |
unsigned long |
부호없는 long |
%llu |
unsigned |
부호없는 long long |
서식 |
의미 |
출력 타입 |
설명 |
%hd |
short integer |
unsigned short |
부호없는 10진 정수 출력 |
%d 또는 %i |
Decimal, Integer |
int |
10진 정수 출력 |
%ld |
|
long |
10진 정수 출력 |
%lld |
|
long long |
10진 정수 출력 |
%lu |
|
unsigned long |
부호없는 10진 정수 출력 |
%I64d |
|
__int64 |
10진 정수 출력 |
%I64u |
|
unsigned __int64 |
부호없는 10진 정수 출력 |
%o |
Octal |
unsigned int |
8진 정수 출력 |
%x 또는 %X |
heXadecimal |
unsigned int |
16진 정수로 출력. 대문자 X 쓰면 A~F도 대문자 출력 |
%u |
Unsigned |
unsigned int |
부호없는 10진 정수 출력 |
%c |
Character |
char, unsigned char |
1개의 문자 출력 |
%s |
String |
char*, string, CString |
문자열 출력 |
%f |
Float |
float |
고정 소수점 형식의 실수 출력 |
%lf |
|
double |
고정 소수점 형식의 실수 출력 |
%e 또는 %E |
|
float, double |
부동 소수점 형식의 실수 출력 |
%g 또는 %G |
|
float, double |
%e, %f 중 더 짧은 형식으로 출력 |
%p |
Pointer |
void * |
포인터의 번지값 출력 |
%n |
|
|
출력된 문자 개수를 포인터에 대입 |
%% |
|
|
%문자 자체를 출력 |
▼ printf 규칙
printf(“%#7.5hd”);
printf(“%ABCD”);
A B C D
A : 출력의 형태에 조절을 가하기 위한 특별한 표시문자(#)
−: 좌측 정렬
0 : 빈 공간을 0으로 채우기
+ : 출력 할 수의 크기가 0보다 클 때, + 기호 붙여주기
공백: 출력 할 수의 크기가 0보다 클 때 수의 앞에 빈칸 하나 출력
# : 8진수, 16진수 출력 시 각각 0과 0x를, 실수의 경우 소수점 이하 0 출력
B : 출력에 사용되는 최소한의 폭(7)
C : 정밀도(5)
D : 출력데이터의크기정보변경(h)
▼ scanf 이용 시에 사용해야 하는 서식 문자
서식문자 |
입력대상(자료형) |
입력 형태 |
%d |
int |
부호 있는 10진수 정수 |
%i |
int |
부호 있는 10진수 정수 |
%u |
unsigned int |
부호 없는 10진수 정수 |
%o |
unsigned int |
부호 없는 8진수 정수 |
%x |
unsigned int |
부호 없는 16진수 정수 |
%c |
char |
문자 |
%s |
char * |
문자열 |
%p |
void * |
주소 값 |
%f %e %g |
float |
부호 있는 실수 |
%d %hd %hhd |
int short char |
%d %ld %lld |
int long long long |
%f %lf %Lf |
float double long double |
▼ 상수에 사용되는 접미사 정리
일단 상수는 변경이 가능한 변수와 달리 변경이 불가능한 수입니다.
상수에는 두 가지 종류가 있는데 바로 정수형 상수와 실수형 상수 입니다.
정수형,실수형 상수는 다음과 같습니다.
-
- 정수형 상수는 int 형으로 표현합니다.
- 실수형 상수는 double 형으로 표현합니다.
즉, 숫자를 변수에 직접 대입할 때, 알아야 할 것이라고 생각하면 됩니다.
1234 같은 것이 정수형 상수 int 이며 (int val = 1234;) 3.14 같은것이 실수형 상수입니다.
실수형으로 선언시 double 형으로 표현됩니다.
여기서 float 형을 쓰게 된다면 (float val2 = 3.14;) 라고 쓰면 3.14는 double 형이 됩니다.
이렇게 쓰면 데이터가 잘려나갈 수 있습니다. (기본형 double 의 범위와 float 범위가 다르다)
이것을 방지하기 위해 상수 뒤에 접미사를 붙혀서 해결할 수 있습니다.
float val2 = 3.14f 위와 같이하면 3.14는 float 형이됩니다.
이처럼 정수형 상수에는 접미사를 붙힐 수 있습니다.
접미사의 종류는 다음과 같습니다.
접미사 |
자료형 |
U |
unsigned int |
L |
long |
UL |
unsigned long |
LL |
long long |
ULL |
unsigned long long |
'C++' 카테고리의 다른 글
[ C++ ] 이진 탐색 함수 lower_bound, upper_bound (0) | 2021.02.03 |
---|---|
[ C++ ] stringstream 사용 방법 (0) | 2021.01.24 |
[ C++ ] 순열을 구할 수 있는 함수 next_permutation (0) | 2021.01.12 |
[ C++ ] max_element , min_element로 정해진 구간의 원소들 중 최대/최소값 구하기 (0) | 2020.12.27 |
[ C++ ] unique 함수로 vector 원소들의 중복 제거 (1) | 2020.12.23 |