64位系统下C语言中int值的取值范围

Python08

64位系统下C语言中int值的取值范围,第1张

64位机器中,int占32位,取值范围为-2147483648~2147483647(-2^32~2^32-1)。

int类型的情况:

shortint类型可能占用比int类型更少的存储空间,C保证short类型至少16位长,用于只需小数值的场合以节省空间。

longint类型(或简写为long类型)可能占用比int类型更多的存储空间,C保证short类型至少32位长,用于使用大树枝的场合。

longlongint类型(或简写为longlong类型)可能占用比long类型更多的存储空间,C保证short类型至少64位长,用于使用更大数值的场合。

扩展资料

C语言的整型溢出问题int

int为4字节32位,其中首位用0表示正数,用1表示为负数。因此对于

最大正数可以表示为:0x7fffffff(7的二进制为0111,f二进制为1111)

最大负数(-1)可以表示为:0xffffffff

最小负数可以表示为:0x80000000(8的二进制为1000)

负数为正数的源码取反码再取补码,过程如下:

1、-1的原码:10000000000000000000000000000001

2、得反码:11111111111111111111111111111110

3、得补码:11111111111111111111111111111111

根据编译器不同有以下两种格式:定义:long long a格式符:%lld // 是两个 英文小写字母 'l'定义:__int64 a//前面是两个下划线格式符:%I64d //大写字母 ' I ' 比如:long long ascanf("%lld",&a)或__int64 ascanf("%I64d",&a)当然输出格式符也是一样的!