C语言的整型溢出问题 int、long、long long取值范围 最大最小值

类型名称           字节数    取值范围
signed char        1        -128~+127
short int          2        -32768~+32767
int                4        -2147483648~+2147483647
long int           4        -2147483648~+2141483647
long long long int 8      -9223372036854775808~+9223372036854775807

编译器不同,所占字节宽度是不相同,分别如下:

16位编译器:

int: 2个字节

long: 4个字节

long long: 8个字节

unsigned long: 4个字节

32位编译器:

int: 2个字节

long: 4个字节

long long: 8个字节

unsigned long: 4个字节

64位编译器:

int: 4个字节

long: 8个字节

long long: 8个字节

unsigned long: 8个字节

unsigned int  (unsigned long)
4字节8位可表达位数:2^32=42 9496 7296  
范围:0 ~ 42 9496 7295 (42*10^8)  

int  (long)
4字节8位可表达位数:2^32=42 9496 7296  
范围:-21 4748 3648 ~ 21 4748 3647 (21*10^8)

long long (__int64)
8字节8位可表达位数:2^64=1844 6744 0737 0960 0000  
范围:-922 3372 0368 5477 5808 ~ 922 3372 0368 5477 5807 (922*10^16)

unsigned long (unsigned __int64)
8字节8位可表达位数:2^64=1844 6744 0737 0960 0000  
范围:0 ~ 1844 6744 0737 0955 1615 (1844*10^16)

  

posted @ 2019-03-23 16:41  里昂静  阅读(4122)  评论(0编辑  收藏  举报