常用数据类型的取值范围及所占字节大小

如下表所示:

数据类型 所占字节 最小值 最大值
char 1 -128 127
unsigned char 1 0 255
short 2 -32768 32767
unsigned short 2 0 65535
int 4 -2147483648 2147483647
unsigned int 4 0 4294967295
long(32位程序) 4 -2147483648 2147483647
unsigned long(32位程序) 4 0 4294967295
long(64位程序) 8 -9223372036854775808 9223372036854775807
unsigned long(64位程序) 8 0 18446744073709551615
int32_t 4 -2147483648 2147483647
uint32_t 4 0 4294967295
int64_t 8 -9223372036854775808 9223372036854775807
uint64_t 8 0 18446744073709551615

从表中可以看出,需要注意的是long的所占字节数,其在32位中和int是一样的,在64位中为8字节,所以为了提升程序在不同系统上的移植性,最好使用int64_t,其具有不变性。

此外,还需要注意一下有符号的最大值的绝对值比最小值的绝对值小1,这是因为有符号数中的0属于正数范围。
可以利用库函数<limits.h>中的INT_MAX,INT_MIN等常量来查看类型在最值。

有一个需要建议记住的是int类型的最值,可以简单的记为2乘10的10次方。

猜你喜欢

转载自blog.csdn.net/qq_41372644/article/details/122093023