时间:2021-05-20
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 等等
我就废话不多说了,大家还是直接看代码吧~
Constant Meaning Value CHAR_BIT Number of bits in the smallest variable that is not a bit field. 8 SCHAR_MIN Minimum value for a variable of type signed char. -128 SCHAR_MAX Maximum value for a variable of type signed char. 127 UCHAR_MAX Maximum value for a variable of type unsigned char. 255 (0xff) CHAR_MIN Minimum value for a variable of type char. -128; 0 if /J option used CHAR_MAX Maximum value for a variable of type char. 127; 255 if /J option used MB_LEN_MAX Maximum number of bytes in a multicharacter constant. 5 SHRT_MIN Minimum value for a variable of type short. -32768 SHRT_MAX Maximum value for a variable of type short. 32767 USHRT_MAX Maximum value for a variable of type unsigned short. 65535 (0xffff) INT_MIN Minimum value for a variable of type int. -2147483647 - 1 INT_MAX Maximum value for a variable of type int. 2147483647 UINT_MAX Maximum value for a variable of type unsigned int. 4294967295 (0xffffffff) LONG_MIN Minimum value for a variable of type long. -2147483647 - 1 LONG_MAX Maximum value for a variable of type long. 2147483647 ULONG_MAX Maximum value for a variable of type unsigned long. 4294967295 (0xffffffff) LLONG_MIN Minimum value for a variable of type long long. -9,223,372,036,854,775,807 - 1 LLONG_MAX Maximum value for a variable of type long long. 9,223,372,036,854,775,807 ULLONG_MAX Maximum 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的值,但结果不是下面是程序结果:
程序中定义了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是基本整型。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
我们都直到char大小为1,int为4,那么C++中对象的大小是多少呢?看三个问题:C++中函数占不占对象的大小空类的大小是多少?如果类中有虚函数,类的大小是多
在C++中,函数的形参可以是指向函数的指针,函数也可以返回函数的指针。例如:int(*ff(int))(int*,int);表示:ff(int)是一个函数,带有
在c和c++中,我们知道没办法起一个变量名叫int,因为这是C/C++保留的关键字,起这么一个变量名没办法区分到底是int类型还是int变量。事实上在C#中也有
excel中的int函数意思是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。 C/C++编
详解C语言函数返回值解析程序一:intmain(){int*p;inti;int*fun(void);p=fun();for(i=0;ib)max=a;else