【发布时间】:2020-09-03 14:33:54
【问题描述】:
我在过去将文字乘以 10 亿时遇到过问题,结果应该是 64 位,但由于存在文字而被转换为 32 位。
当乘以可能超过 2^32 的数字时,最佳(最安全和最简单)的做法是什么?
我有这个等式:
const uint64_t x = 1'000'000'000 * 60 * 5;
我选择了:
const uint64_t x = static_cast<uint64_t>(1'000'000'000) * 60 * 5;
这是应该怎么做的吗?只有一个被乘数需要转换为 64 位?
【问题讨论】:
-
将
ULL附加到文字之一。 -
有什么理由不使用
1000000000ULL? -
@infixed 它的可读性远低于
1'000'000'000ULL
标签: c++