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

Python07

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

C语言int的取值范围在32/64位系统中都是32位,范围为-2147483648~+2147483647,无符号情况下表示为0~4294967295。

C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同。

C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。

基本数据类型:

void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)

char:字符型类型数据,属于整型数据的一种。(K&R时期引入)

int:整型数据,表示范围通常为编译器指定的内存字节长。(K&R时期引入)

float:单精度浮点型数据,属于浮点数据的一种。(K&R时期引入)

double:双精度浮点型数据,属于浮点数据的一种。(K&R时期引入)

_Bool:布尔型(C99标准新增)

_Complex:复数的基本类型(C99标准新增)

_Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数(C99标准新增)

_Generic:提供重载的接口入口(C11标准新增)

扩展资料:

1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“ANSI C”。

C89在1990年被国际标准组织ISO(International Standard Organization)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被简称为“C90”。

1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称“C99”。

在2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: 2011,简称为“C11”。

参考资料:

百度百科-C语言

百度百科-int函数

在64位系统下,int为了与之前的兼容,仍占4字节32位,而long被扩展到了8字节64位。

二者不同包括:

1 占空间不同,这一点之前已经说过了;

2 表达范围不同:

由于占空间不同,long可以表示更大的范围,具体为

int 范围为-2147483648~2147483647;

long的范围为-9223372036854775808 ~ 9223372036854775807;

3 输入输出时使用的格式字符不同。int使用%d,long使用%ld。

在应用上,采用较小优先的原则,如果int的范围足够计算不会溢出,那么就采用int;当int不足计算需要时,采用long。