1、对于16位编译器,int占16位(2字节)。
int的最大值为32767.
2、对于32位和64位编译器,int占32位(4字节)。
int的最大值为2147483647
3、可以通过打印sizeof(int)查看平台对应的int占用字节数,乘8后即为位数。
最高位为符号位,如位数为n,则最大值为
2^(n-1)
即2的n-1次幂。
扩展资料:得的C语言中int最大值与最小值的方法
方法1:
printf("%d\n",~(unsigned int)0/2)
当无符号0以二进制存储在内存中时,每一位都为0,以32位int为例,0(unsigned int)的二进制为:
00000000 00000000 00000000 00000000
按位取反(~)后变成:
11111111 11111111 11111111 11111111
此时的十进制为:
4294967295
除以2(int类型中有一半表示负数,且比正数多一个),得到:
2147483647
即为32位int型最大值
方法2:
#include <stdio.h>
int main()
{
int i=0,j=1
while (j>0)
{
j++
i++
}
printf("%d\n",i)
printf("%d\n",j)
return 0
}
整数值越界后符号改变
方法3:
#include <stdio.h>
int main()
{
int i=0
i=~i
i=i<<(sizeof(int)*8-1)
printf("%d\n",i)
i--
printf("%d\n",i)
return 0
}
计算机采用补码存储,先补码得到-1(即各位全为1),然后利用移位运算得到最小,进而得到最大。
在 C 语言中,int类型的最大值取决于编译器和 *** 作系统,通常为 2147483647。在许多编译器中,int类型是使用 32 位二进制数存储的,所以其最大值为 2^31-1.
如果要确定某个编译器和 *** 作系统中 int 类型的最大值,可以使用 C语言中的头文件<limits.h>中的宏 INT_MAX。
如下:
#include <limits.h>
#include <stdio.h>
int main(void)
{
printf("The maximum value of int is %d\n", INT_MAX)
return 0
}
可以发现对于不同的编译器和 *** 作系统,INT_MAX 的值可能有所不同。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)