리터럴 상수, 심볼릭 상수
10진수, 8진수, 16진수, 바이너리 (2진수)
#include <iostream>
int main()
{
using namespace std;
// Decimal : 0 1 2 3 4 5 6 7 8 9 10
// Octal : 0 1 2 3 4 5 6 7 | 10 11 12
// Hexa : 0 1 2 3 4 5 6 7 8 9 A B C D E F
int x = 012; // 8진수 ( 숫자앞에 0이 붙는다. )
int y = 0xF; // 16진수 ( 숫자 앞에 0x이 붙는다. )
cout << x << endl;
cout << y << endl;
return 0;
}
int x = 012; 처럼 앞에 '0'을 붙이면 8진수로 인식하고, '0x'를 붙이면 16진수로 인식한다.
또한 2진법도 가능한데, 바이너리의 경우에는 int x = 0b1001처럼 표시한다.
만약 2진수가 너무 길 경우엔, 0b1001’0000’0001으로 따옴표를 넣어도 된다.
(컴파일러가 ‘(따옴표)를 무시한다. 10진수에서도 가능)
심볼릭 상수
Const
const double gravity{ 9.8 };
const는 고정된 숫자를 표현할 때 사용하고, 컴파일러가 변하는 것을 막아준다. (실수 방지)
그리고 변수만 선언하면 안되고 초기화를 꼭 해주어야한다.
컴파일 타임 상수와 런타임 상수
const int my_const(123); // 컴파일타임 상수
int number;
cin >> number;
const int special_number(number); // 런타임 상수
두 가지의 차이는 컴파일할때 이미 값이 결정되어있고
하나는 런타임중에 값이 결정되는 차이가 있다.
C++ 에서 constexpr을 사용하면 컴파일 타임 상수라는 의미이다
const 변수 이용 예
//my_constants.h
#pragma once
namespace constants
{
constexpr double pi(3.141592);
constexpr double avogadro(6.0221413e23);
constexpr double moon_gravity(9.8 / 6.0);
//..
}
#include <iostream>
#include "MY_CONSTANTS.h"
double radius;
cin >> radius;
double circumference = 2.0 * radius * constants::pi;
return 0;
const변수가 많을경우 헤더파일에 모아서 정리한다.
double circumference = 2.0 * radius * constants::pi; 에서 constants::pi로 쓸 수 있다.
'개발 > C++' 카테고리의 다른 글
[C++] 3.2 sizeof, 쉼표, 조건부 연산자 [ comma operator ] (0) | 2023.06.13 |
---|---|
[C++] 3.1 연산자와 증감연산자 (0) | 2023.06.13 |
[C++] 2.3 불리언 자료형과 if문, 문자형(Char) [캐스팅, 버퍼, limits] (0) | 2023.06.01 |
[C++] 2.2 부동소수점 (0) | 2023.06.01 |
[C++] 2.1 자료형, 정수형, 고정너비 정수, 무치형(Void) [auto, 초기화, 오버플로우, void] (0) | 2023.05.31 |