(C++) 2.5 리터럴 상수

이준우·2021년 10월 9일
0
#include <iostream>

int main()
{
	using namespace std;

	float pi = 3.14f;
	//unsigned로 바꾸는 것인데 별로 좋은 방법은 아니다.
	int i = -12324u;  
	unsigned int i = -12324;


	return 0;
}

굳이 상수 뒤에 u를 붙여 사용하는 것 보다는 가독성을 위해 처음부터 아래의 코드처럼 사용하거나 캐스팅을 하여 사용하는 방식이 더 좋다. 항상 가독성을 위해 코드를 짜도록 한다.

#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 13
	// Hexa : 0 1 2 3 4 5 6 7 8 9 A B C D E F 10

	int x = 012;
	cout << x << endl;

	return 0;
}

output : 10

위 코드를 보면 10이 출력되는데, 뭐지 하는 사람도 있을 것이다. 0을 제외한 어떤 수도 0을 넣고 부르지 않는다. 만약 0뒤에 숫자가 존재한다면 그것은 8진수로 바꾼다는 것이고 이를 출력하면 10진수에 해당하는 값이 나온다.

#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 13
	// Hexa : 0 1 2 3 4 5 6 7 8 9 A B C D E F 10

	int x = 0xF;
	cout << x << endl;

	return 0;
}
output : 15

16진수로 표현하고 싶을 땐 0xF처럼 0x를 넣어 사용한다.

#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 13
	// Hexa : 0 1 2 3 4 5 6 7 8 9 A B C D E F 10

	int x = 0b1010;
	cout << x << endl;

	return 0;
}
output : 10

C++14에서는 binary literal도 사용이 가능해졌는데, 이진수로 써넣어 사용할 수 있다는 것이다. 또한, 이진수를 너무 길게 사용하면 가독성이 떨어지게 되는데

int x = 0b101111111010

처럼 사용하는 것이 아니라

int x = 0b1011'1111'1010

이처럼 '를 넣어 구별한다. 이 경우에 compiler는 '를 무시한 채 실행한다.

0개의 댓글