在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,但它的详细而且不准确。
答案 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。但是你可以将它们转换为整数类型。