整型数据
- 基本整型(
int
型):如果用Visual C++,编译系统给int
型数据分配4个字节(32位),其能容纳的数值范围为 − 2 31 ∼ ( 2 31 − 1 ) -2^{31}\sim(2^{31}-1) −231∼(231−1)。 - 短整型(
short int
型):如果用Visual C++,编译系统给short int
型数据分配2个字节(16位),其能容纳的数值范围为 − 2 15 ∼ ( 2 15 − 1 ) -2^{15}\sim(2^{15}-1) −215∼(215−1)。 - 长整型(
long int
型):如果用Visual C++,编译系统给long int
型数据分配4个字节(32位),其能容纳的数值范围为 − 2 31 ∼ ( 2 31 − 1 ) -2^{31}\sim(2^{31}-1) −231∼(231−1)。
注意点:
- 上述三种类型均为有符号数,当值表示为正数时,第一位作为符号位为0。
- C标准没有具体规定各种类型数据所占用存储单元的长度,由各个编译系统自行决定。C标准只要求long型数据长度不短于int型,short型数据不长于int型。即 s i z e o f ( s h o r t ) ≤ s i z e o f ( i n t ) ≤ s i z e o f ( l o n g ) sizeof(short)\le sizeof(int)\le sizeof(long) sizeof(short)≤sizeof(int)≤sizeof(long)。
-
整型变量的符号属性(在Visual C++环境下)
类型 字节数 取值范围 int 4 − 2 31 ∼ ( 2 31 − 1 ) -2^{31}\sim(2^{31}-1) −231∼(231−1) unsigned int 4 0 ∼ ( 2 32 − 1 ) 0\sim(2^{32}-1) 0∼(232−1) short 2 − 2 15 ∼ ( 2 15 − 1 ) -2^{15}\sim(2^{15}-1) −215∼(215−1) unsigned short 2 0 ∼ ( 2 16 − 1 ) 0\sim(2^{16}-1) 0∼(216−1) long 4 − 2 31 ∼ ( 2 31 − 1 ) -2^{31}\sim(2^{31}-1) −231∼(231−1) unsigned long 4 0 ∼ ( 2 32 − 1 ) 0\sim(2^{32}-1) 0∼(232−1)
字符型数据
-
字符与字符代码并不都能被程序识别,只能使用系统字符集中的字符,目前多采用ASCII字符集。
-
字符变量是使用类型符
char
定义的。如定义char a='?'
,'?'
的ASCII代码为63,系统就把整数63赋给变量a
。a
是字符变量,实质上是一个字节的整型变量,在输出的时候可以选择十进制整数形式输出或字符形式输出。 -
字符型数据的存储空间和值的范围
类型 字节数 取值范围 signed char 1 − 2 7 ∼ ( 2 7 − 1 ) -2^{7}\sim(2^{7}-1) −27∼(27−1) unsigned char 1 0 ∼ ( 2 8 − 1 ) 0\sim(2^{8}-1) 0∼(28−1)
浮点型数据
-
浮点型数据是用来表示具有小数点的实数,其类型包括单精度浮点型(float)、双精度浮点型(double)、长双精度浮点型(long double)。
-
浮点型数据的存储空间和值的范围(在Visual C++环境下)
类型 字节数 有效数字 取值范围 float 4 6 0 、 1.2 ∗ 1 0 − 38 ∼ 3.4 ∗ 1 0 38 0、1.2*10^{-38}\sim 3.4*10^{38} 0、1.2∗10−38∼3.4∗1038 double 8 15 0 、 2.3 ∗ 1 0 − 308 ∼ 1.7 ∗ 1 0 308 0、2.3*10^{-308}\sim 1.7*10^{308} 0、2.3∗10−308∼1.7∗10308 long double 8 15 0 、 2.3 ∗ 1 0 − 308 ∼ 1.7 ∗ 1 0 308 0、2.3*10^{-308}\sim 1.7*10^{308} 0、2.3∗10−308∼1.7∗10308
不同数据之间的混合运算
在程序中经常需要对不同类型的数据进行运算,如果一个运算符两侧的数据类型不同,则先自动进行类型转换,然后进行运算。其规则如下:
+、-、*、/
运算的两个数中有一个数为float
或double
型,其结果是double
型。- 如果
int
型与float
或double
型数据进行运算,先把int
型与float
型都转换为double
型,其结果是double
型。 char
型数据与整型数据运算,就是把字符的ASCII码与整型数据进行运算。
参考资料
- C程序设计(第五版),谭浩强著。