为了使数值字面值更易读,C++14引入了两个新特性。
1. 二进制字面值表示
在一些程序中会使用一个整数的若干二进制位来表示表示状态。过去,我们只能用十六进制,四位四位地表示各位。直接从十六进制数读出每一个二进制位还是很不直观的。因此,直接用二进制位来表示会更直观一些。在C++14中,引入了二进制字面值表示,以0b开头的是二进制数:
//下面的 i1 == i2
int i1 = 0x78D;
int i2 = 0b011110001101;
2. 数字分位符
上面的二进制数还是不够易读,主要原因是数字还是太长了,如果能每几位划分一下,就更易读了。在C++14中,可以使用单引号 ' 作为分位符:
int i2 = 0b0111'1000'1101;
在C++14中,任何数,包括浮点数,也包括任何进制的数,都可以使用分位符。而且,位数可以任意划分,不一定非得等长:
int i3 = 13'22'3;
int i4 = 0x3F'4D'2C'1B;
float f1 = 6.6'26e+3'3;
float f2 = 3.1'415'9265'3'589'79;