学习笔记:
6.整型数据
整型数据包括整型变量和整型常量两种
整型数据的存储
C语言提供了多种整数类型,分别用来表示不同范围的整数。整型数据的大小一般与系统的字长有关,其存储一般采用补码的形式。
1.字长的概念
字长是CPU的主要技术指标之一,指的是CPU一次能并行处理的二进制位数,字长总是8的整数倍,通常计算机的字长为16位(早期)、32位和64位。
32位CPU就是在同一时间内处理字长为32位的二进制数据。二进制的每一个0或1是组成二进制的最小单位,称为一个比特(bit)。在其他指标相同时,字长越大计算机处理数据的速度就越快。
一台16位字长的计算机,可以直接处理216(65536)之内的数字,对于超过65536的数字,则需要分解的方法来处理。32位计算机比16位机优越的原因就在于,它在一次操作中能处理的数字大,其能直接处理的数字高达40亿(232)。能处理的数字越大,则操作的次数就越少,从而系统的效率也就越高。
现在CPU大多是64位的,但并不等于其是按64位字长运行的,这需要操作系统的支持。如果仍然是32位的操作系统,那么仍将以32位字长运行,没能展示它的字长的优越性。因此,64位的CPU和64位的操作系统才能使CPU按照64位字长运行。
不同CPU体系结构及其字长,如表。其中,i386、ia64和x86_64是目前应用最广的CPU构架。
2.整型数据的存储空间
-
C语言中,根据计算机的字长不同,为int整型类型分配的存储空间也不一样。例如,
在32位计算机中,因字长为32位,int整型类型也将用32位二进制数表示(即占用4个字节),而在早期的16位计算机上,因字长为16位,int整型类型将用16位二进制数表示(2个字节)。其他数据类型的存储空间,例如float、double等,也与计算机的字长有关。
-
如果读者不知道一个系统的字长及每个数据类型所占的存储