原教材内容为Turbo C代码实验环境,更改为Linux GCC之后,在整形变量和实型变量的使用过程中以下两点不得不考虑。
一、整型变量
整型变量的基本类型符为int,在int之前可以根据需要分别加上修饰符(modifier):short(短型)或long(长型),得到以下3中整型变量。
● 基本整型:类型说明符为int,在内存中占2个字节。
● 短整型:类型说明符为short int或short。所占字节和取值范围与基本整型相同。
● 长整型:类型说明符为long int或long,在内存中占4个字节。
事实上,上面3种类型的整型都是有符号的,如在Linux中short int型变量的取值范围为-32768~32767。在实际应用中,变量的值常常是正的,如学号、年龄、库存量等等,针对这些情况,C语言可以加上修饰符unsigned,以指定是无符号数,相反,如果加上signed则表示是有符号数。若既不指定unsigned也不指定signed,则隐含为有符号的(signed)。如上面归纳的几种类型均表示是有符号的。归纳起来,可以用以下6种整型变量。
● 有符号基本整型: [signed] int
● 无符号基本整型: unsigned [int]
● 有符号短整型: [signed] short [int]
● 无符号短整型: unsigned short [int]
● 有符号长整型: [signed] long [int]
● 无符号长整型: unsigned long [int]
各种无符号类型量所占的内存空间字节数与相应的有符号类型相同。但由于省去了符号位(有符号数在存储单元中最高位表示符号,最高位为0表示正数,为1表示负数),不能表示负数,故一个无符号整型变量中可以存放的正数范围比一般整型变量中正数的范围扩大一倍。例如:
有符号整型变量:最大表示32767
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
无符号整型变量:最大表示65535
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
表2.2列出了Linux中各整型量所分配的内存字节数及数的表示范围。
表2.2 整数类型表
类型说明符 |
数的范围 |
字节数 |
short int |
-32768~32767 即-~(-1) |
2 |
unsigned short int |
0~65535 即0~(-1) |
2 |
int |
-2147483648~2147483647 即-~(-1) |
4 |
unsigned int |
0~4294967295 即0~(-1) |
4 |
long int |
-2147483648~2147483647 即-~(-1) |
4 |
unsigned long |
0~4294967295 即0~(-1) |
4 |
二、实型变量
前面我们学习了实型常量,本节我们来学习实型变量。首先来了解实型变量的分类。
1.实型变量的分类
实型变量分为:单精度(float型)、双精度(double型)2类。有关规定见表2.3。
表2.3 实数类型
类型说明符 |
比特数(字节数) |
有效数字 |
float |
32(4) |
7 |
double |
64(8) |
15 |
在linux gcc中,单精度型占4个字节(32位)内存空间,只能提供7位有效数字。双精度型占8个字节(64位)内存空间,可提供15位有效数字;小数最大有效位数6位。
原文地址:https://www.cnblogs.com/mingruoran/p/11613956.html