繁体   English   中英

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

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

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

有人知道价值吗?

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

对于 64 位大小,可以表示的最大数字为2^63 - 1 ,等于9223372036854775807 这种精确大小的原因是,我们需要一半的位组合用于负数,然后一个用于0 ,而 rest 用于正数。

特定系统上的最大值也可以通过以下方式以编程方式检查:

#include <iostream>
#include <limits>

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

Output:

 9223372036854775807

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

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

C++ 标准对long long修饰符的保证是它的宽度至少为 64 位。 (见这里)。

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

要检查long long int类型在您的机器和实现上可以容纳的最大和最小数量,请使用带有std::numeric_limits<long long><limits>库。 您可以在此处阅读更多相关信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM