gpt4 book ai didi

c++ - C++中整数类型可以存储的最大值

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:16 30 4
gpt4 key购买 nike

我有以下 C++ 程序

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <limits>
using namespace std;

int main()
{
printf("range of int: %d to %d", SHRT_MIN, SHRT_MAX);
int a = 1000006;
printf("\n Integer a is equal to %d", a);
return 0;
}

我的问题是 - a 如何能够存储大于 MAX 限制的整数?

最佳答案

参见 http://en.cppreference.com/w/cpp/header/climitshttp://en.cppreference.com/w/cpp/types/numeric_limits

SHRT_MAXshort int 类型对象的最大值,但是 aint 类型的对象,因此适当的常量将是 INT_MAX。在 32 位系统上,此值的通常值为 32767 ( 2¹⁵-1)。您可能有一个 64 位系统,其中 2147483647 ( 2³¹-1 ) 可能是上限。

此外,正如上面评论中指出的,您可能还想运行

#include <limits>
#include <iostream>

int main() {
std::cout << "type\tlowest\thighest\n";
std::cout << "int\t"
<< std::numeric_limits<int>::lowest() << '\t'
<< std::numeric_limits<int>::max() << '\n';
return 0;
}

在某些情况下(参见 INT_[MIN|MAX] limit macros vs numeric_limits<T>)确定这些值(从上述引用页复制的代码)。

附带说明,如果出于某种原因整数类型的宽度与您的代码相关,您可能还需要考虑查看 http://en.cppreference.com/w/cpp/types/integerhttp://en.cppreference.com/w/cpp/header/cstdint对于固定宽度的整数类型(另请参阅 Is there any reason not to use fixed width integer types (e.g. uint8_t)? 进行讨论)。

关于c++ - C++中整数类型可以存储的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23711422/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com