提高C ++中非常大的常量的可读性

时间:2015-05-16 15:59:06

标签: c++

在C ++中,有时你想要声明大数字。有时很难看出你是否有正确数量的零。

const long long VERY_LARGE_NUMBER = 300000000000;

在像OCaml这样的语言中,您可以使用下划线分隔数字以提高可读性。

let x = 300_000_000_000;;

C ++中是否有类似的机制?我已经看到像= 1 << 31那样的2的幂,但是对于非常大的10的幂呢?有时您会声明非常大的数字(例如竞争编程中的数组边界),并且您希望确信您声明的数组大小是正确的。

我可以想到:

const long long VERY_LARGE_NUMBER = 3 * (1 << (11 * 10 / 3));

...滥用1<<10 ~= 1000以11个零接近3,但它的详细而且不准确。

2 个答案:

答案 0 :(得分:3)

怎么样

const long long VERY_LARGE_NUMBER =  (long long) 300 * 1000 * 1000 * 1000;

答案 1 :(得分:3)

从C ++ 14开始,整数文字支持使用$ which convert 作为分隔符。例如,$ /user/bin 。有关详细信息,请参阅this cppreference page。此外,您可以考虑使用科学记数法,例如$ /user/local/bin 。这些文字是floating point literals。但是你可以将它们转换为整数类型。