文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么在C++中设置INT_MAX和INT_MIN数值的大小

2023-06-07 18:01

关注

本篇文章为大家展示了怎么在C++中设置INT_MAX和INT_MIN数值的大小,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

int占4字节32位,根据二进制编码的规则,

INT_MAX = 2^31-1=2147483647

INT_MIN= -2^31=-2147483648

C/C++中,所有超过该限值的数,都会出现溢出,出现warning,但是并不会出现error。

如果想表示的整数超过了该限值,可以使用长整型long long 占8字节64位。

补充:C++ 数值最大最小标识符一网打尽,INT_MIN/ INT_MAX/LONG_MIN/LONG_MAX 等等

我就废话不多说了,大家还是直接看代码吧~

ConstantMeaningValue
CHAR_BITNumber of bits in the smallest variable that is not a bit field.8
SCHAR_MINMinimum value for a variable of type signed char.-128
SCHAR_MAXMaximum value for a variable of type signed char.127
UCHAR_MAXMaximum value for a variable of type unsigned char.255 (0xff)
CHAR_MINMinimum value for a variable of type char.-128; 0 if /J option used
CHAR_MAXMaximum value for a variable of type char.127; 255 if /J option used
MB_LEN_MAXMaximum number of bytes in a multicharacter constant.5
SHRT_MINMinimum value for a variable of type short.-32768
SHRT_MAXMaximum value for a variable of type short.32767
USHRT_MAXMaximum value for a variable of type unsigned short.65535 (0xffff)
INT_MINMinimum value for a variable of type int.-2147483647 - 1
INT_MAXMaximum value for a variable of type int.2147483647
UINT_MAXMaximum value for a variable of type unsigned int.4294967295 (0xffffffff)
LONG_MINMinimum value for a variable of type long.-2147483647 - 1
LONG_MAXMaximum value for a variable of type long.2147483647
ULONG_MAXMaximum value for a variable of type unsigned long.4294967295 (0xffffffff)
LLONG_MINMinimum value for a variable of type long long.-9,223,372,036,854,775,807 - 1
LLONG_MAXMaximum value for a variable of type long long.9,223,372,036,854,775,807
ULLONG_MAXMaximum value for a variable of type unsigned long long.18,446,744,073,709,551,615 (0xffffffffffffffff)

补充:c++中short的最小值SHRT_MIN减1不是SHRT_MAX的原因

最近在看一本一直都想看的书,c++ primer plus,本来想看的是c++ primer,结果买错了,反正都差不多。

在学习short,int,long的时候,看到书中这样写到:整型变量的行为就像里程表。如果超越了限制,其值将为范围另一端的取值。这句话我是这样理解的,假如我们设置了一个int型的整数,例如 int n_int = INT_MAX; 那么,我们做 n_int+1时输出应为 INT_MIN。结果的确是这样。但是short的有点特别,虽然不常见。

下面看一段程序:

int c_char = CHAR_BIT;int n_int = INT_MIN;short n_short = SHRT_MIN;long n_long = LONG_MAX;long long n_llong = LLONG_MAX;cout<< sizeof n_int<<" "<<sizeof n_short<<" "<<sizeof(n_short - 1)<<" "<<sizeof(n_long)<<" "<<sizeof(n_llong)<<endl;cout<<n_int - 1<<" "<< n_short - 1 <<" "<<n_long<<" "<<n_llong<<" "<<c_char<<endl;//n_short是short类型的最小值,理论上减1应为SHRT_MAX的值,但结果不是

下面是程序结果:

怎么在C++中设置INT_MAX和INT_MIN数值的大小

解释:

程序中定义了n_int为int型的最小值,我们输出n_int-1时发现结果是int的最大值INT_MAX。结果第二行第一个数。但是在程序的第四行我们定义了一个n_short,赋值SHRT_MIN,然后输出n_short - 1,理论上说结果应该为32767,也就是SHRT_MAX。但是结果不一样,那么结果为什么会这样呢?

我们可以看输出中的第一行,此行输出的是各个数值在计算机中占的字节数。在输出sizeof(n_short - 1)时,结果是4,也就是数n_short - 1现在是一个整型数。在c++中规定short是两个字节,也就是16位。但是在计算机中,short存储占4个字节,因此,在short超出范围的时候会自动转换成整型的数。

这里额外在说一点,c++中基本整型有5种:char、short、int、long、long long(c++11中)。这里注意,char是基本整型。

上述内容就是怎么在C++中设置INT_MAX和INT_MIN数值的大小,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯