Coding Memo
C++ 리터럴 표기법 및 팁 본문
변수에 넣는 값을 리터럴이라고 한다.
(= 메모리에 저장되는 값)
int a = 1;
위 코드에서 리터럴은 1이 된다.
C++ 에서의 여러가지 타입에 대한 리터럴 표기법
* 1를 표시한다고 했을 때,
형식 | 리터럴 |
int | 1 |
unsigned int | 1u |
long | 1l |
unsigned long | 1ul |
double | 1.0 |
float | 1.0f |
long double | 1.0l |
이 외에도 2진수, 8진수, 16진수 표기법이 각각 따로 있다. (2진수는 C++11 부터)
형식 | 접두사 | 예시 |
2진수 | 0b, 0B | 0b1110 |
8진수 | 0 | 015 |
16진수 | 0x, 0X | 0XAABB00 |
주의: 접두사 이후에 나오는 숫자나 문자는 당연히 해당 형식에 포함된 숫자나 문자여야 한다! (아니면 오류가 날 것이다.)
Tip : 조금 긴 숫자를 표현할 때, 알아보기 쉽게 ` (어포스트로피)를 사용하자 (C++14)
우리가 일상생활에서 금액을 표기할 때 쉼표를 쓰는 것처럼 프로그래밍할 때도 비슷하게 쉼표대신 어포스트로피를 사용하여 숫자를 쉽게 읽고 파악할 수 있다.
어포스트로피(`)는 단순 정수 뿐만 아니라 2진수, 8진수, 16진수에도 사용할 수 있다.
(자신이 편한 위치에 넣어주면 된다!)
(키보드에서 어포스트로피는 작음 따옴표이다.)
형식 | 일반 표기 | 어포스트로피 삽입 후 |
정수 | 1234567890 | 1'234'567'890 |
2진수 | 0b1000110001 | 0b10'0011'0001 |
8진수 | 01234567 | 0123'4567 |
16진수 | 0x12345612AB34 | 0x1234'5612'AB34 |
int main()
{
long long a = 1'234'567'890l;
long long b = 0b10'0011'0001l;
long long c = 0123'4567l;
long long d = 0x1234'5612'AB34l;
int e = 1'000'000'000;
cout << a << endl;
cout << b << endl;
cout << c << endl;
cout << d << endl;
cout << e << endl;
return 0;
}
(부동소수점에는 어포스트로피 대신 .(온점)을 이용하면 된다. (C++17) 하지만 공학적인 계산이나 이런 표기가 필요한 특정상황이 아니라면 헷갈릴 것이다...)
정리
메모리에 저장되는 값을 리터럴이라고 하며, C++ 에는 여러가지 타입을 지원한다.
특히, long이나 long double 같은 부동소수점에서는 좀 더 정확한 값 표기를 위해 리터럴를 사용하는 것을 추천한다.
참고 책: 필요한 것만 골라 배우는 모던 C++ | 프로그램 인사이트 | 패터 고칠링
'Language > C++' 카테고리의 다른 글
[C++] 컨테이너(자료구조) 사용법 간단요약 (0) | 2023.07.21 |
---|---|
[C++] 여러가지 출력 방법 (스트림 서식화) (0) | 2023.07.11 |
VS 템플릿 클래스 사용 시 빌드 오류 (LNK2019, LNK1120) (0) | 2023.01.07 |
소켓 IO 모델 장단점 정리 (0) | 2022.11.29 |
volatile 전역변수 사용 - 쓰레드 (0) | 2022.09.06 |