C++中int的范围是多少?

为什么我试了最大可以达到2^31-1呢?不应该是最大32767吗?
2024-12-02 17:32:16
推荐回答(5个)
回答1:

C语言中int的取值范围为:-2147483648 ~ 2147483647


解释如下:

  1. int类型在C语言中占4个字节,即32个二进制位。
    当表示正数时,最高位为符号位(符号位为0),最大的正数是 0111 1111 1111 1111 1111 1111 1111 1111   即2^31 -1 = 2147483647

  2. 当表示负数时,最高位为符号位(符号位为1),最小的负数是 1000 0000 0000 0000 0000 0000 0000 0000  而在计算机中是以补码的形式存储的,C语言规定 1000 0000 0000 0000 0000 0000 0000 0000 的补码为-2147483648

  3. 所以C语言中int的取值范围为:-2147483648 ~ 2147483647

拓展内容:

C++:

  1. 是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

  2. C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

  3. C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

参考资料:百度百科。

回答2:

哎,老大们居然没有一个说完整的,或者就是有笔误的。

大体上套用贝式弧现的答案吧,纠正一下他的几处错误:

在标准C++中的int的字节长度小于long大于short就行了,多数平台上int占4个字节(32位,不是16位!),所以能表示的范围就是2的32次方,表示为数值是-2^(32-1) ~ 2^(32-1) -1 ( ^ 表示成方 )(就是 -2^31 ~ 2^31 - 1, 而不是2^16...)
根据不同的需要,int包括以下定义:
unsigned short int 无符号2字节短整形
short int 带符号2字节短整形 - 32768 ~ 32767
unsigned int 无符号4字节整形 0 ~ 2^32 -1 (这个是对的)
int 4字节整形 - 2^31 ~ 2^31 - 1
int 64 64位(8字节)整形 - 2^63 ~ 2^63 - 1 (这个很少用到,一般是表示为高位int和低位int,贝式弧现对它的范围也给错了)

回答3:

在标准C++中的int根据不同系统占不同的字节数,多数平台上int占4个字节,所以能表示的范围就是2的32次方,楼上说的不太对,int 4应该表示
-2^16 ~ 2^16 -1 ( ^ 表示成方 )
根据不同的需要,int包括以下定义:
unsigned short int 无符号2字节短整形
short int 带符号2字节短整形 - 32768 ~ 32767
unsigned int 无符号4字节整形 0 ~ 2^32 -1
int 4字节整形
int 64 64位(8字节)整形 - 2^32 ~ 2^32 - 1

回答4:

我给你说说吧,和机器有关,现在绝大部分pc都是32位的,所以int是32位,
而在以前的16位PC上,int是16位的。
short(int)永远是16位,long(int)永远是32位。

回答5:

C++标准里是16位的,但现在windows上大多数编译器int都是32位的,与long样~~