Skip to main content

[C++ Primer Plus] Chapter 3. 데이터 처리

C++ 기초 플러스 책을 읽고 공부한 노트입니다.




변수 이름 규칙 #

  1. 영문자, 숫자, 밑줄만 사용 가능
  2. 대문자와 소문자는 구별됨
  3. 첫 문자가 숫자일 수는 없음
  4. C++의 키워드는 사용 못함
  5. 예약어는 사용 못함
  6. 길이 제한은 없음

비트와 바이트 #

  • 비트
    • 컴퓨터 메모리를 구성하는 기본 단위
  • 바이트
    • 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 charsigned char가 중요해진다. 하지만 문자라면 단순히 char라고만 하면 된다.

  • 1바이트로 표현할 수 없는 한국어 문자 세트 같은 경우는 확장문자 세트를 제공한다. wchar_t이다. 이것은 기초 데이터형과 동일한 크기와 부호 속성을 가진다. 이 문자의 스트림을 처리하기 위해 wcout, wcin이 존재하고, 문자열 앞에 L을 붙여 나타낸다.

const #

  • 상수를 기호 이름으로 나타내기 위해서는 #defineconst를 사용할 수 있다.
  • 하지만 const가 나은 이유는…
    • (1) 데이터형을 명시 가능
    • (2) 특정 함수나 파일에서만 사용 하게 가능
    • (3) 복잡한 데이터형도 가능

부동 소수점형 #

부동 소수점형 저장방식
Image Source
부동 소수점형 표기
Image Source

  • 3.14 : 가수, 16 : 지수
  1. 유효숫자: 의미 있는 숫자 (3.14이므로 3개), 유효숫자의 개수: 정밀도
  2. 지수 허용범위

  • 고정 소수점 표기로 결과를 출력한다. (소수점 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만큼은 크다