1
C语言程序设计
1.3.1.1 2.1.1 整型

2.1.1 整型

C语言中,整型的基本类型符为int。根据数值的范围又可分为普通整型(int)、短整型(short int或short)和长整型(long int或long)。

根据整型值是否带符号位来分类,可以分为不带符号的整型值和带符号的整型值。无符号用关键字unsigned表示,有符号用关键字signed表示,实际上signed是完全可以不写的,因为缺省unsigned和signed时,默认为有符号数(signed)。

需要注意的是,标准C没有具体规定以上各类数据所占内存字节数,只要求long型数据长度不短于int型,short型不长于int型。具体如何实现,由各计算机系统和编译系统决定。如在Turbo C 2.0中,一个int型和一个short型数据分别占用2个字节(16位)的内存空间,一个long型数据占用4个字节(32位)的内存空间;而在Visual C++6.0中,一个short型数据占用2个字节的内存空间,一个int型数据和一个long型数据分别占用4个字节的内存空间。

根据整型数据所占的位数,可以计算一个整型数据能表示的数据的取值范围。以int(有符号普通整型)为例计算取值范围。在Turbo C2.0中,普通整型占16位,其存储方式如下:

img82

第0位是符号位,如果符号位为0,表示是正整数,从1到15位全为1时表示的数最大,即0111111111111111,为215−1,即32 767。如果符号位为1,表示是负整数,从1到15位全为0时表示的数最小,即1000000000000000,这是−215的补码表示。因此,最小整数是−215,即−32 768。

可以同样的方法计算其他整型数的取值范围。表2.1.1和表2.1.2分别列出了在Turbo C 2.0环境下和Visual C++6.0环境下各整数类型所占的内存空间及其取值范围。

表2.1.1 Turbo C 2.0环境下整数类型所占的内存空间及其取值范围

img83

表2.1.2 Visual C++6.0环境下整数类型所占的内存空间及其取值范围

img84

方括弧内的部分是可以省写的。例如,short int与short等价,unsigned int与unsigned等价。对于有符号数,一般都不写signed。