C++에서 정수 리터럴을 사용할 때는 10진수, 16진수, 8진수만 사용 가능하다.
예를 들어 11이라고 하면 10진수로 11이고, 0x11이라고 하면 16진수이므로 10진수로 변환하면 17이 되고, 011이라고 하면 8진수이므로 10진수로 변환하면 9가 된다.
C++14에서는 2진수 정수 리터럴 사용이 도입되었고 0b나 0B를 prefix로 사용하면 된다.
다음 예제를 참고할 것
#include <iostream>
using namespace std;
int main(void)
{
cout << 0b1 << endl;
cout << 0b0 << endl;
cout << 0b10 << endl;
cout << 0b10001111 << endl;
cout << 0B10001111 << endl;
return 0;
}
1
0
2
143
143