PHP_int_Max什么意思,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 等等

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

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<

cout<

//n_short是short类型的最小值,理论上减1应为SHRT_MAX的值,但结果不是

下面是程序结果:

17514c3eea595a6bc16258ac3a167850.png

解释:

程序中定义了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是基本整型。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值