[C++ Primer Plus] Chapter 3. 데이터 처리
Table of Contents
C++ 기초 플러스 책을 읽고 공부한 노트입니다.
변수 이름 규칙 #
- 영문자, 숫자, 밑줄만 사용 가능
- 대문자와 소문자는 구별됨
- 첫 문자가 숫자일 수는 없음
- C++의 키워드는 사용 못함
- 예약어는 사용 못함
- 길이 제한은 없음
비트와 바이트 #
- 비트
- 컴퓨터 메모리를 구성하는 기본 단위
- 바이트
- 8비트. C++에서는 컴파일러의 기본 문자 세트를 수용할 수 있는 최소한의 연속된 비트들로 구성한다.
sizeof
연산자- 데이터형의 크기를 바이트 단위로 리턴한다.
climits
헤더파일- 컴파일러에 알맞은 최대값들을 정의해놓은 헤더파일 (
INT_MAX
등)
- 컴파일러에 알맞은 최대값들을 정의해놓은 헤더파일 (
변수 초기화 문법 #
int var = 10;
int var = {10};
int var {10};
int var (10);
진법 #
진법 | 조건 |
---|---|
10진수 | 첫 숫자가 1~9 |
8진수 | 첫 숫자가 0이고 두번째 숫자가 1~7 |
16진수 | 첫 두 문자가 0x 혹은 0X |
- 조정자
hex
,oct
를 사용하면 16진법, 8진법으로 출력가능
cout << hex
cout << oct
정수형 상수의 데이터형을 결정하는 방법 #
- 접미어를 붙이면 해당 데이터형으로
- 10진 정수
int
<long
<long long
형 중에서 크기가 작은 것으로
- 8진, 16진 정수
int
,unsigned int
<long
,unsigned long
<long long
,unsigned long long
중에서 크기가 작은 것으로
문자 #
-
이스케이프 시퀀스(escape sequence)
'\n'
"\n"
개행은 정식 문자로 취급된다.
-
유니버셜 코드 네임(universal character names)
\u
나\U
뒤에 16진수 숫자가 온다. 이 숫자들은 특정 문자에 해당하는 ISO10646코드를 나타낸다. 이것으로 어떤 문자도 영어가 아니어도 소스코드 안에 쓸 수 가 있다.
-
char
형을 수에 쓰려고 한다면unsigned char
와signed char
가 중요해진다. 하지만 문자라면 단순히char
라고만 하면 된다. -
1바이트로 표현할 수 없는 한국어 문자 세트 같은 경우는 확장문자 세트를 제공한다.
wchar_t
이다. 이것은 기초 데이터형과 동일한 크기와 부호 속성을 가진다. 이 문자의 스트림을 처리하기 위해wcout
,wcin
이 존재하고, 문자열 앞에L
을 붙여 나타낸다.
const #
- 상수를 기호 이름으로 나타내기 위해서는
#define
과const
를 사용할 수 있다. - 하지만
const
가 나은 이유는…- (1) 데이터형을 명시 가능
- (2) 특정 함수나 파일에서만 사용 하게 가능
- (3) 복잡한 데이터형도 가능
부동 소수점형 #
3.14
: 가수,16
: 지수
- 유효숫자: 의미 있는 숫자 (
3.14
이므로 3개), 유효숫자의 개수: 정밀도 - 지수 허용범위
- 고정 소수점 표기로 결과를 출력한다. (소수점 6자리까지)
cout.setf(ios_base::fixed, ios_base::floatfield)
부동 소수점형 상수의 데이터형을 결정하는 방법 #
- 기본은
double
형 float
로 하고 싶으면f
,F
를 붙이고long double
형으로 하고 싶으면l
,L
을 접미어로 붙인다.
산술 연산자 #
%
연산자의 두개의 피연산자는 모두 정수여야한다. 아니면 컴파일 에러가 발생한다./
연산자의 두개의 피연산자 중 한 개이상이 부동 소수점형이면 결과도 부동 소수점형이다.
수식에서의 데이터 형 변환 #
bool
,char
,unsigned char
,signed char
,short
형은int
로 정수 승급된다.- 서로 다른 데이터형을 혼합하면 큰 크기의 데이터형으로 변환된다
데이터형 변환자 #
- 강제로 데이터형을 변환시킨다.
(int) var;
int (var);
정수 데이터형 #
- 모든 컴퓨터에서 사용하기 위해 데이터의 폭(width, 메모리의 크기)은 최소 크기만 정한다.
데이터형 | 크기 |
---|---|
bool |
1바이트 |
char |
1바이트. 시스템의 기본 문자세트의 어떤 문자라도 저장할 만큼 커야 함 |
signed char |
-128~127 |
unsigned char |
0~255 |
short |
최소한 2바이트 |
unsigned short |
|
int |
4바이트. 최소한 short 만큼은 크다 |
unsigned int |
|
long |
최소한 4바이트의 폭, int 만큼은 크다 |
unsigned long |
|
long long |
최소한 8바이트의 폭, long 만큼은 크다 |
부동 소수점 데이터형 #
데이터형 | 크기 |
---|---|
float |
4바이트 |
double |
8바이트. 최소한 float 만큼은 크다 |
long double |
16바이트. 최소한 double 만큼은 크다 |