c语言 int最大值是多少??

Python012

c语言 int最大值是多少??,第1张

当无符号0以二进制储存在内存中的时候,每一位都为0,以32位int为例,(unsigned int)0的二进制为:

00000000000000000000000000000000

按位取反(~)后,变成:

11111111111111111111111111111111

此时的十进制为:

4294967295

除以2(因为int类型中有一半表示负数且比正数多一个)之后为:

2147483647

即为32位int类型最大值。

C语言中最大的整型数据类型是long类型,占4个字节

C中短整型和整型均占2个字节,取值范围是 -32768 ~~~ 32767

长整型占4个字节,取值范围是 -2147483648 ~~~~ 2147483647

如果是无符号数的话,可以表示的数据就是

短整型和 整型:  0--- 65535

长整型:             0---4294967295

在C语言中如果一个数很大的话,超过最大的长整型,可以使用double来存储,这样不会影响运算精度。

这样算:一般来说int型 占4字节,1字节=8bit4字节就是4*8bit=32bit

那么int型最大能表示的数为2^32(2的32次方)=也就是:4294967296(这是无符号的int型能表示的最大数,而有符号的int型中还包含负数,所以表示最大值要砍掉一半,如下)

有符号int型:

有符号int型能表示最大数为:4294967296÷2-1=2147483647

如果要在程序中自动算出,可以这么写:pow(2,ziseof(int)*8)/2-1

记得加上头文件:#include <math.h>

望采纳!

0x00CBF95C是int变量a的地址,从内存查看器可以看出,十进制数16被存储为00 00 00 10

说明单个'0'存储范围为0-15,表示成二进制的话,一个'0'存储范围相当于0000~1111,4个二进制位;

这里有8个'0',相当于一个int型是由4*8=32个二进制位来表示。