【发布时间】:2015-05-16 15:59:05
【问题描述】:
在 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 得到接近 3 的 11 个零,但它很冗长且不准确。
【问题讨论】:
-
有时十六进制表示会有所帮助。否则,我能想到的唯一方法就是在声明上方添加评论!
-
您也可以对常数使用科学记数法,即
const long long VERY_LARGE_NUMBER=3e11; -
@Mat 非常棒的 c++14 功能
-
这样的东西会有帮助吗?
const long long VERY_LARGE_NUMBER = 3e10;
标签: c++