C++中"长整"的确切最大值是多少?

What's the exact maximum value of `long long int` in C++?

本文关键字:最大值 多少 长整 C++      更新时间:2023-10-16

我已经使用c++超过3个月了,我无法计算出long long int中数字的确切最大值。

有人知道它的价值吗?

这取决于系统。C++标准仅保证long long int最小大小为64位。这也是迄今为止最常见的尺寸。

对于64位大小,可以表示的最大数目将是2^63 - 1,它等于9223372036854775807。这个确切大小的原因是,我们需要负数的一半比特组合,然后一个用于0,其余用于正数。

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

#include <iostream>
#include <limits>
int main() {
std::cout << std::numeric_limits<long long int>::max();
}

输出:

9223372036854775807

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

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

C++标准对long long修饰符的保证是其宽度至少为64位。(请参见此处(。

然而,类型的确切宽度取决于特定的平台,因此您的类型可能会得到超过64位的数据。

要检查long long int类型在您的机器和实现上可以容纳的最大和最小数量,请将<limits>库与std::numeric_limits<long long>一起使用。你可以在这里阅读更多。