C ++中long long int的确切最大值是多少?

时间:2019-11-05 11:10:32

标签: c++ long-integer

我已经使用c++ 3个多月了,我无法弄清楚long long int中数字的确切最大值。

有人知道它的价值吗?

3 个答案:

答案 0 :(得分:5)

这取决于系统。 C ++标准仅保证long long int will be 64-bits最小大小。到目前为止,这也是最常见的尺寸。

使用64位大小时,可以表示的最大数量为2^63 - 1,等于9223372036854775807。之所以如此精确,是因为负数需要一半的位组合,0需要一个位组合,正数需要其余的位组合。

特定系统上的最大值也可以通过以下程序进行检查:

#include <iostream>
#include <limits>

int main() {
    std::cout << std::numeric_limits<long long int>::max();
}
  

输出:

9223372036854775807

答案 1 :(得分:3)

long long int没有C ++语言指定的固定最大值-它取决于平台。

使用std::numeric_limits<long long>::max()(来自<limits>标头)获取最大值。

答案 2 :(得分:1)

C ++标准对long long修饰符的保证是它将具有至少64位的宽度。 (请参阅here)。

但是,类型的确切宽度取决于特定的平台,因此您可能会为类型获得更多的64位。

要检查long long int类型可以容纳在您的计算机和实现中的最大和最小数目,请使用<limits>库和std::numeric_limits<long long>。您可以了解有关here的更多信息。