数学系第三章首页上页下页节末页结束北京理工大学共69页第2页第三章要点数据的描述规则数据的操作规则首页上页下页节末页结束北京理工大学共69页第3页xaxfsin536.3)(数据是程序处理的对象就要将常量3.6、3、5,变量a、x以及运算符号等表达给计算机;◆那么C语言如何表达这些数据?◆C语言能够描述哪些数据?◆对它可以描述的那些数据能做哪些运算?◆运算的规则是什么?这就是本章要解决的问题。如一程序要求解右侧表达式:的值首页上页下页节末页结束北京理工大学共69页第4页第三章目录第1节数据与数据类型第2节基本数据类型及其表示第3节C的运算符与表达式概述第4节算术运算第5节赋值运算第6节逗号运算第7节混合运算中的数据类型转换●关于数据有效位的说明首页上页下页节末页结束北京理工大学共69页第5页§3-1数据与数据类型数据是程序处理的对象数据类型:指的是数据的性质;具有相同性质的数据同属于一种数据类型。例:3、5、-9、+1000同属于整型数3.5、-5.2、0.001同属于实型数不同类型的数据在计算机上所需的存储空间的大小也不同,对它们施加的操作也不同。首页上页下页节末页结束北京理工大学共69页第6页C语言的数据类型数据类型构造类型指针类型空类型(无值类型)void*枚举类型enum数组类型结构类型struct联合类型union基本类型整型字符型实型(浮点型)单精度实型双精度实型返回第3章目录首页上页下页节末页结束北京理工大学共69页第7页*§3-2基本数据类型及其表示本节介绍:各种基本数据类型的名称、存放的长度、表示数的范围、各种基本数据类型的数据的:常量和变量的概念、常量的表示方法、变量的说明格式、初始化、使用中的注意事项等。重点和难点:整型数据表示数的范围实型数据的有效位数字符和字符串的区别转义字符的概念首页上页下页节末页结束北京理工大学共69页第8页基本数据类型p43基本数据类型整型实型(浮点型)单精度实型(float)4双精度实型(double)8字符型(char)1基本整型(int)2字节短整型(short[int])2长整型(long[int])4无符号基本整型(unsigned[int])2无符号长整型(unsignedlong[int])4无符号短整型(unsignedshort[int])2首页上页下页节末页结束北京理工大学共69页第9页一、常量与变量的概念无论什么类型的数据都存在常量和变量两种形式常量:在程序运行中,其值保持不变的数据称为常量在书写程序时我们直接写出的数据,如:3、-3.3.6等无论是常量还是变量都需要一块存储区域存放变量:在程序运行过程中,其值可以改变的数据称为变量在程序中通过变量名引用变量,变量名和内存中的存储单元相对应。规定:变量必须先定义,后使用。首页上页下页节末页结束北京理工大学共69页第10页二、变量的定义格式:类型说明符变量名表;例:inta;intb;intc;floatd;charch;等价于inta,b,c;以上定义了三个整型变量:a,b,c一个实型变量:d和一个字符型变量:ch首页上页下页节末页结束北京理工大学共69页第11页变量定义、使用的概念例:在程序运行过程中,其值可以改变的数据称为变量1000HXXXmain(){inta;a=8;a=8*3;}a=8;inta;a=8*3;8824变量a内存数据区内存程序区首页上页下页节末页结束北京理工大学共69页第12页三、整型数据内容包括:1、整型数据的长度2、整型数据的取值范围3、整型常量的表示方式(程序书写时)4、整型数在内存的存储形式首页上页下页节末页结束北京理工大学共69页第13页1、整型数据的长度(占内存的字节数)和取值范围p43类型类型说明符长度数的范围基本型int2字节-32768~32767短整型short2字节-215~215-1长整型long4字节-231~231-1无符号整型unsigned2字节0~65535215无符号短整型unsignedshort2字节0~65535215无符号长整型unsignedlong4字节0~(232-1)(0—4294967295)首页上页下页节末页结束北京理工大学共69页第14页整型常量的三种表示方法p4210进制:使用数字字符0~98进制:使用数字字符0~7,以0开头16进制:使用数字字符0~9,A~F/a~f,以0x或0X开头例整型常量的类型:根据值大小默认类型在常量后面加l或L,表示longint型例如:123L,0L,432l都是longint型常量3、程序书写时整型常量的表示方式对58的不同进制表示:十八十六580720x3A首页上页下页节末页结束北京理工大学共69页第15页(复习)4.数制转换10进制整数转R进制整数以数R做除数,以10进制整数为被除数,再将所得商再做为被除数不断的除以R,直到商为0止;其间每除以1次R都将余数写于算式右侧。最后按从下至之上的顺序将余数写下来,即是转换后的数。24212·····026·····0·····02·····032·····1120·····1高低(24)10=(11000)2(58)10=(72)85880·····287·····7高低首页上页下页节末页结束北京理工大学共69页第16页(58)10=(3A)1658163·····1016·····30高低首页上页下页节末页结束北京理工大学共69页第17页每位的数码乘以该位的位权之和数制转换R进制转10进制以2转10为例:(11011)2=(27)10(11011)2=(1*24+1*23+1*21+1*20)10=(16+8+2+1)10=(27)108转10、16转10方法同上(1A5)16=(1*162+10*16+5)10=(256+160+5)10=(421)10首页上页下页节末页结束北京理工大学共69页第18页数制转换2进制整数16进制整数(1101011)2=(01101011)2=(6B)16(7F9)16=(011111111001)22转16的转换方法:第一步:从被转换数的最后一位整数开始向左每四位划分为一组,高位若不足四位用0补齐。第二步:将每组2进制数码用一个对应的16进制数码写出。转换后此高位0可以不写出来16转2的转换方法:将每个16进制数码用其对应的4位的2进制数码写出。首页上页下页节末页结束北京理工大学共69页第19页5、整型数的数据范围及在内存的存储形式以基本整型变量为例,有定义:inta;存储长度16位二进制(2B)0000000000000001000000000000001101111111111111111000000000000000=1=3最大的负数?=-215=-32768定点二进制补码表示(复习)占2个字节存储数的表示范围:-32768~32767a=215-1=32767最大的正数?首页上页下页节末页结束北京理工大学共69页第20页整型数以二进制补码形式存储0000000000000001符号位:0为正,1为负正数的原、反、补码都一样+11000000000000001-1的原码11111111111111101111111111111111-1的反码-1的补码1000000000000001-32767的补码1000000000000000-32768的补码首页上页下页节末页结束北京理工大学共69页第21页实型数据包括实型常量和实型变量两种表示形式小数指数0.1231.23e-01实型常量只能用十进制形式表示,不能用八进制和十六进制常量占用内存空间吗?1e3、1.8e-3、-123e-6、-.1e-3e5、1e-3.2、e、.e-03四、实型数据——1.实型常量的表示形式首页上页下页节末页结束北京理工大学共69页第22页类型说明符长度数的范围有效数字单精度型float4字节-1038~10387位双精度型double型8字节-10308~1030815位实型变量的有关规则如下:四、实型数据——2.实型数据的长度、表数范围和有效位数首页上页下页节末页结束北京理工大学共69页第23页实数的有效位数例:floatf1;f1=123.36646754;只保证存入f1变量中的数据的前7位正确(有效数字为7)首页上页下页节末页结束北京理工大学共69页第24页实数在内存的存储形式p46实数的范围和实数在内存的存储形式有关,以单精度实数为例:例:0.123456*10-2数符小数指数符号指数+0.123456-2小数部分(3字节)指数部分(1字节)首页上页下页节末页结束北京理工大学共69页第25页实型数的分辨率:最小正数:10-38小于该数时处理为0下溢最大正数:1038大于该数时提示出错上溢实型数在计算机内部都按指数形式存放实型数常数不区分单精度和双精度数的存储结构和精度与计算机硬件特性有关超出表示范围的数机器如何处理?首页上页下页节末页结束北京理工大学共69页第26页五、字符型数据——在内存只占1个字节字符型数据包括字符型常量和字符型变量1、字符型常量2、字符数据在内存中存储形式3、字符串常量4、转义字符(特殊形式的字符常量)首页上页下页节末页结束北京理工大学共69页第27页1、字符型常量用单引号括起来的一个字符是字符型常量“a”、‘abc’‘a’、’A’、‘1’首页上页下页节末页结束北京理工大学共69页第28页2、字符数据在内存中存储形式字符数据‘a’在内存中的存储形式是:01100001字符型数据在内存占1字节,存储的是该字符的ASCII码0000000001100001字符‘a’、’A’、‘1’的ASCII值是:97、65、49数值97在内存的存储首页上页下页节末页结束北京理工大学共69页第29页字符串常量是用双引号括起来的一个或多个字符n个字符组成的字符串常量,占空间为n+1个字节china\0字符串结束标记“空”字符3、字符串常量“a”串长1“ThisisCstring”串长16“”(空格)串长1“”(不含空格)串长0例C中没有专用的字符串变量“China”首页上页下页节末页结束北京理工大学共69页第30页有些以“\”开头的特殊字符称为转义字符4、转义字符(特殊形式的字符常量)\n换行\t横向跳格\r回车\\反斜杠\dddddd表示1到3位八进制数字\xhhhh表示1到2位十六进制数字例:‘\60’即‘0’,是字符0的八进制表示,其十进制ASCII码是48‘\105’即‘E’,是字符E的八进制表示,其十进制ASCII码是69‘\x61’即‘a’,是字符a的十六进制表示,其十进制ASCII码是97首页上页下页节末页结束北京理工大学共69页第31页main(){chara,b,c;intd;a='\5';b='\60';c=’A';d=1089;printf(a=%cb=%cc=%dd=%c\n,a,b,c,d);printf(“a=%db=%d\n,a,b);getch();}按整数输出C按字符输出D0000010001000001d6500110000b=‘\60‘在计算机中的存储按字符和整数输出a首页上页下页节末页结束北京理工大学共69页第32页*字符串“w\11”的存储占几个字节?转义字符字符串结束标记w\11*字符串“w\11\0good”占几个字节?首页上页下页节末页结束北京理工大学共69页第33页定义形式char占存储空间一个变量2、字符型变量一个字符变量只能包含一个字符main(){charc;c=‘c’;printf(“%c”,c);}运行结果:c题目中有几个c,哪些是等价的?首页上页下页节末页结束北京理工大学共69页第34页六、符号常量符号常量的定义#definePRICE30价格main(){intnum,total;total=num*PRICE;printf(“%d\n”,total);}首页上页下页节末页结束北京理工大学共69页第35页在定义变量时为其指定值方法:inta=5;inta,b,c=5;int