第3讲-常量、变量与标志符-整型、实型、字符型数据_图文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机中的数都是用补码表示的
所谓原码是指一个数的最高位为符号位,其余的数位均 为数值位,数值位的值即为该数所对应的二进制数的值。 如十进制数+5的原码为:0000000000000101;
十进制数-5的原码为:1000000000000101。 计算机中的数都是用补码表示的机器数。一个正数的补 码和其原码的形式完全相同;而一个负数的补码也是在其 原码的基础上转换出来的。转换方法分两步进行: (1) 将负数的原码中的数值位按位取反,得到该数的反 码。取反操作就是把1转换成0,把0转换成1。如-5的反码 为:1111111111111010。 (2) 在所求得的反码的数值部分的最低位再加上1,即 得到该数的补码。
一般微机都会为每个已定义的基本整型的变量在内存
中开辟2个连续的存储单元,一个存储单元可以存放8位的
二进制信息,一个基本整型的变量中具有16位的二进制信
息,其中的最高数值位为符号位,它所能表示的数值范围 为:-32768~32767。
3. 整型数据分类
类型 类型名 符号 类型 类型名 符号
基本整型 int
有不同规定,只要求长整型(long)数据所占字节数不少于基本整
型(int),短整型(short)不多于基本整型
• 标准C基本整型占2个字节,VC基本整型占4个字节
表2.1 C语言中各种整型数据的长度及取值范围
4.整型数据在内存中的存储形式
在计算机中,每一种数据类型的数据位数都是固定不变 的,所以每一种数据类型都有它的取值范围,在进行算术 运算的过程中,如果运算结果超出了它的取值范围,就会 得到一个错误的运算结果,这种情况称为溢出。
printf("x1=%f\n", x1); printf("x2=%f\n", x2); } 程序的运行结果为: x1=288.399994 x2=1234567936.000000
2.5 字符型数据
• 类型名 char • 字符型数据存储ASCII字符集中的一个字符,占
用1个字节的存储单元,实际存储的是该字符的 ASCII值。 • 字符型数据的存储形式与整数的存储形式类似, 所以在C语言中可以把字符型的数据当作整型数 使用,其数值范围为:-128~ 127 • 可以定义无符号的字符变量,其数值范围为: 0~255,定义形式如下: unsigned char c; /*说明变量c为无符号字符型变量*/
标识符的分类
• C语言的标识符可以分为以下三类。
–关键字 C语言规定的一批标识符,它们在程序中都 代表着固定的含义,不能另作它用。
–预定义标识符 在C语言中也都有特定的含义,允许 另作它用,但这将使这些标识符失去系统规定的原意 。
–用户标识符 用户根据需要定义,一般用来给变量、 函数、数组或文件等命名。除要遵循标识符的命名规 则外,还应注意做到“见名知义”,即选择的用户标识 符应具有相关含义,以增加程序的可读性。
4 ±(10-38~1038 )
有效数 字位数
7
双精度 double
8 ±(10-308~10308 ) 15~16
在大多数C编译系统中,将实型常量都作为双精度型 来处理。例如:
float a; double b; a=111111.111; /*最后两位小数不起作用*/ b=111111.111;
由于用来存储实型数据的存储单元的位数有限,所以有效 位数以外的其它数字位被舍去了。这种误差叫做存储误差。 此外,在将十进制数转换成二进制数时,有时也会产生误差 ,即转换误差。
例2.2 实型数据的误差
main() {float x1, x2; x1=288.4; /*有效位数不多,但会产生转换误差*/ x2=1234567891.0; /*有效位数太多,会产生存储误差*/
由以上分析可知,由两个字节存放的最小整数是 1000000000000000,它的十进制数为-32768;而-1的二进制 码为1111111111111111;最大整数是0111111111111111,它 的十进制数为32767。读者可按以上步骤进行换算。
对于无符号的整数,其中的最高位不再用来表示符号,16 个二进制位全部用来存放数值,当其16个二进制位中全部都 是0时,其对应的十进制数值为0;当其16个二进制位中全部 都是1时,其对应的十进制数值为65535。
–如果用户标识符与关键字相同,程序在编译时将给出 出错信息,如果与预定义标识符相同,系统并不报错 ,只是该预定义标识符将失去原定含义,代之以用户 确认的含义,可能会引发一些运行时的错误。
2.3 整型数据
整型数据包括整型常量和整型变量。
1.整型常量
(1) 十进制形式,如:100,0,-100 (2) 八进制形式,以数字0开头的八进制数 ,如:
2.整型变量
整型变量可以分为基本整型、短整型、长整型和无符号
整型四种。本节只介绍基本整型的变量。
C语言规定在程序中所有要用到的变量,在使用前必须先 指定其类型,即对变量进行“定义”或者说明。
基本整型的变量用类型名关键字int 进行定义,定义形
式如下:
int k;
/*定义变量k为整型变量*/
int x1, x2, x3; /*定义变量x1, x2和x3均为整型变量*/
表示
2.1 C语言的数据类型
• 数据按在内存中的存储形式可分:基本类 型、构造类型、指针类型、空类型
• 基本数据类型包括整型(基本整型、短整 型、长整型、无符号基本整型、无符号短 整型、无符号长整型)、实型(单精度实 型、双精度实型)和字符型。
• 根据数据的值在程序运行过程中是否发生 变化,可分为常量和变量。
图2.1
2.2 常量、变量与标识符
1. 常量
• 在源程序中明确指明,在程序运行前就知道,而 且在程序运行过程中不会发生变化。
• 常量类型: – 整型常量,如:123、-321、0 – 实型常量,如:12.3、2.0 – 字符常量,如:’a’、’b’、’7’、’#’ –符号常量,用一个标识符来代表,其值在其 作用域内不能改变,也不能被赋值,一般在程 序中需要多次使用某个常量时使用。
5.整型常量的类型
在程序中出现一个整型常量,也应该是上述6种类别当 中的一种,C语言会自动按以下5种情况分别进行处理。 (1) 数值在-32768~32767的范围内的常量是int型。 (2)超过上述范围,但在-2147483648~2147483647的范 围内,则认为它是long int型。再超则当实型处理。 (3)标准C语言的int与short int等同。 (4)整型常量没有无符号的类型。但整型常数可以直接 赋值给无符号类型的整型变量,只要常数的数值不超过 无符号整型变量的取值范围即可。 (5)C语言允许在一个整型常数后面加上字符L(或l) 表示一个长整型的数据,如100L为十进制长整型常量, 0X100L为十六进制长整型常量。
2. 实型变量及其定义
C语言中的实型变量分为单精度型和 双精度型两种,分别用保留关键字 float和double进行定义。
例如:float x,y;/*说明变量x,y为单精度实型*/ double z; /*说明变量z为双精度实型*/
3. 实型数据分类
类型 类型名 单精度 float
存储 空间
数值范围
标准C语言的基本整型的数据都是十六位的,其中的最 高位(即最左边的一位)用来存放整数的符号,若是正整数 ,最高位为0,若是负整数,最高位为1。因此,从最高位 就立刻能判别出存储器中存放的一个整数是正整数还是负 整数。
例如整数5,其在内存中的二进制码为: 0000000000000101。
正整数的这种存储形式,称为“原码形式”的机器数。
0157 ,即(157)8,其对应的十进制数值为: 1×82+5×81+7×80,即111。八进制数中的数位符 号只能有8 个,即0~7。 (3) 十六进制形式,以数字字母0x开头的十六进制数 ,对如应:的0十x1进57制表数示值十为六:进1制×数1612+557×,16即1+(71×571)6106,,即其 343。十六进制数中的数位符号为数字字符0~9和英 文字母A~F等16个字符。 C语言自动按常量的范围决定其类型。同时允许用户在整 型常量后面加上字符L(或l)表示长整型数据
第3讲-常量、变量与标志符-整型、实型、字 符型数据_图文.ppt
第二章 数据类型、运算符、表 达式
• 能够输入到计算机并由计算机进行处理的 对象称为数据。
• 每一数据具有各自的数据类型。数据类型 决定数据在内存中的存储长度和存储格式 。
• 运算符描述对数据执行何种操作。C语言 中的运算处理功能都是由运算符来实现的 。
3. 标识符
• C语言中,标识符可以用作变量名、符号名、函 数名和后面将要学到的数组名、文件名以及一些 具有专门含义的名字。
• 合法的标识符只能由字母、数字和下划线等三种 字符组成,并且第一个字符必须为字母或下划线 。
• 在C语言的标识符中,大写字母和小写字母是两 个不同的字符,
• 对于标识符的长度,一般的计算机系统规定取前 8个字符有效,如果长于8个字符,多余的字符 将不被识别。有些系统允许取较长的名字,读者 在取名时应当了解所用系统的具体规定。
area); }
2. 变量
• 在程序运行过程中其值可以在一定范围内变化 • 在计算机的内存中占据一定的存储单元,在相应
的存储单元中存放着变量的值。 • 变量名:用来标识一个变量的标识符,也就是变
量的名字。习惯上变量名用小写字母表示,以增 加其直观性和可读性。 • 变量值:变量的值,即在变量的存储单元中存放 的数值。 • C语言规定在程序中所有要用到的变量在使用前 必须先指定其类型,称为变量定义或变量说明。
2.4 实型数据
1. 实型常量
–十进制小数形式,如:100.0、0.5、-10.8等,注 意实型常量中必须要有一个小数点
–指数形式,如:100e5表示100×105,注意字母E (或e)之前必须有数字,且E(或e)后面的指数必 须为整数,如E5、1.5e3.8、1e等都是不合法的指 数形式
–规范化的指数形式 字母E(或e)之前的小数部分, 其小数点之前必须有且只能有一位非零的数值。 如:3.58759E2
例2.1 符号常量的使用
• 符号常量必须先定义 ,后使用。
• 定义格式为:
#define 常量名 字符串
• 习惯上用大写字母来 标识符号常量,用小 写字母来标识变量或 函数。
例2.1:符号常量的使用 #define PI 3.14159 main( ) {float r, l, area; r=3.5; l=2*PI*r; area=PI*r*r; printf(“l=%f, area=%f\n”, l,
4. 实型数据在内存中的存储形式
实型数据在内存中是按照指数的形式来存储的。如图 2.2所示。
由于实型数据在内存中的存储位数是固定的,也是有 限的,所以实型数据的精度不是很高,所能表示的数据 范围也是有限的。而且由于实型数据的存储形式比较复 杂,计算机在进行算术运算时的处理速度也比较慢。
5.实型数据的误差
• 表达式是运算符连接起来的一系列操作。 表达式都有一个值,即运算结果。
本章教学目标
• 掌握数据及数据类型、算术运算符、赋值 运算符、逗号运算符、自增(减)运算符 及其上述运算符组成的表达式的基本概念 ,
• 熟悉运算规则(运算符的优先级和结合性 )、表达式计算中的类型转换规则
• 了解各种类型数据在计算机中的存储形式 • 基本要求:能正确地将数学公式用表达式
如-5的补码为:1111111111111011。
补码转换成原码
如果要把内存中以补码形式存放的二进制数转换成十进制 的整数,也要先将其补码转换成原码,转换方法同上,然后 再将原码转换成十进制的整数。
如-5的补码为:1111111111111011,将其数值位按位取反 ,得到的结果为1000000000000100,再将其数值位加上1, 即得到-5的原码为:1000000000000101。
短整型 长整型
short int或 short
long int或 long
最高位
无符号 整型
最高位
无符号 短整型
最高位
ቤተ መጻሕፍቲ ባይዱ
无符号 长整型
unsigned int 无
unsigned short

unsigned long 无
• 无符号型数据和其相应的有符号型数据占用相同的存储空间
• 不同的C语言处理系统对这几类整型数所占用的字节数和数值范围
相关文档
最新文档