第二章数据类型、运算符与表达式.ppt
《第二章数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《第二章数据类型、运算符与表达式.ppt(89页珍藏版)》请在三一办公上搜索。
1、第二章 数据类型、运算符与表达式,(9FDA.4B)16=(_)8,上节课问题回顾,0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F,000 0001 1010 2011 3100 4101 5110 6111 7,十六进制数:9 F D A.4 B,二进制数:,八进制数:,117732.226,(256)7=(_)6,上节课问题回顾,351,最终目的是:用C语言编写程序来解决实际问题!,数据类型、运算符与表达式,理由1:因为C语言流行.理由2:因为C
2、语言考研时必考。理由3:因为C语言在各种程序考试中首当其中。理由4:因为它是必修课,是老师逼的,不学不能拿学分 理由n:,为什么我们要学习C语言呢?,数据类型、运算符与表达式,沃思公式,程序是解决某种问题的一组指令的有序集合。,对数据的描述,对操作的描述,掌握变量和常量的概念;理解各种类型的数据在内存中的存放形式;掌握各种类型数据的常量的使用方法;掌握各种整型、浮点型、字符型变量的定义和引用方法;掌握数据类型转换的规则以及强制数据类型转换的方法;掌握算术运算符、赋值运算符、逗号运算符的使用方法;理解运算符的优先级和结合性的概念,记住所学的各种运算符的优先级关系和结合性。,学习目的,数据类型、运
3、算符与表达式,数据类型、运算符与表达式,学习内容,数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作,本章所介绍的数据类型,C语言的数据类型,数据类型、运算符与表达式,学习内容,变量与常量,格式:#define 符号常量 常量,例:#define NUM 20#define PI 3.1415926,常量:程序运行时其值不能改变的量(即常数),符号常量:用标识符来代表常量。,运行结果:total=300,行尾不能有分号define前面一定要有#符号常量名最好使用大写符号常量名最好有意义,#include#define PRICE 30void main()int num,t
4、otal;num=10;total=num*PRICE;printf(total=%d,total);,变量与常量,/*This is the second C program*/#include void main()int x,y,z;scanf(%d%d,变量与常量,格式:数据类型 变量名1,变量名2,变量名n;,int x,y,z;float radius,length,area;char ch;,决定分配字节数和数的表示范围,合法标识符,变量:程序运行时其值可以被改变的量,变量的两要素:变量名、变量值,变量与常量,如何衡量变量所占空间大小?,bit,中文叫法:位Byte,中文叫法:字
5、节Kilobyte(KB),中文叫法:KMegabyte(MB),中文叫法:兆Gigabyte(GB),中文叫法:GTerabyte(TB),中文叫法:T,1 TB=1,024 GB,1 GB=1,024 MB,1 MB=1,024 KB,1 KB=1,024 B,1 B=8 b,变量与常量,一个位有多大?只能是“0”或者“1”,二进制一个字节有多大?可以表示数字0255之间的整数保存一个字符(英文字母、数字、符号)ASCII(美国标准信息交换码)编码,见附录A,变量与常量,例1:int student;stadent=19;/Undefined symbol statent in funct
6、ion main,例2:float a,b,c;c=a%b;/Illegal use of floating point in function main,变量与常量,变量与常量,数据类型、运算符与表达式,学习内容,整型数据,整型常量,十进制整数:由数字09和正负号表示,最高位非零.如:123,-456八进制整数:由数字0开头,后跟数字07表示.如:0123,011十六进制整数:由0 x或0X开头,后跟09,af,AF表示.如0 x123,0Xff,定义整数的符号常量#define NUM1 20/十进制数20#define NUM2 020/八进制数(十进制16)#define NUM3 0
7、 x2a/十六进制数(十进制42),思考题:下列整型常量哪些是非法的?012,oX7A,0,078,0 x5Ac,-0 xFFFF,0034,7B。,首字符不能是字母o,八进制数中不能有数字8,十进制数中不能有字母B,正数N的补码N补与原码N原和反码N反相同。对于负数N,其补码N补的的符号为1,数值部分为 反码数值加1。在补码表示法中,0的表示形式是唯一的,即:0补 0000 或 0.000 0补 0000 或 0.000,整型数据,整数在内存中的表示,整数的数值在内存中用补码的形式存放。,将上述求得的补码的低位存放于内存单元之中,就得到了该整数在内存中的表示,内存单元的最高位是符号位(0表示
8、正,1表示负)。,整型数据,整数在内存中的表示,在TC3.0下,一个整数默认情况下需要2个字节(16位)的内存单元存放;而在VC6.0下,则需要4个字节(32位)。,例:十进制整数+14(对于16位的内存单元),符号位,(+14)补=0000 0000 0000 1110,整型数据,(+14)补=0000 0000 0000 0000 0000 0000 0000 1110,符号位,例:十进制整数+14(对于32位的内存单元),整型数据,符号位,(+14)补=0000 0000 0000 1110,(-14)补=1111 1111 1111 0010,例:十进制整数-14(对于16位的内存单元
9、),整型数据,(+14)补=0000 0000 0000 0000 0000 0000 0000 1110,符号位,(-14)补=1111 1111 1111 1111 1111 1111 1111 0010,例:十进制整数-14(对于32位的内存单元),整型数据,(+65537)补=01 0000 0000 0000 0001,(-65537)补=10 1111 1111 1111 1111,符号位,真值为:-1,不是-65537!,例:十进制整数-65537(对于16位的内存单元),整型数据,(+65537)补=0000 0000 0000 0001 0000 0000 0000 0001
10、,符号位,表示负,(-65537)补=1111 1111 1111 1110 1111 1111 1111 1111,真值为:-65537!,例:十进制整数-65537(对于32位的内存单元),为什么-65537这个数在16位内存单元中的表示与在32位内存单元中的表示不相同呢?,这主要是因为-65537这个数超出了16位内存单元表示数的范围,所以实际存储的值(-1)与要表示的值(-65537)不同,但-65537并没有超出了32位内存单元表示数的范围,所以实际存储的值就是其本身。因此,我们在C语言中对数据处理时必须要注意数据的表示范围,以免引起不必要的错误。,整型数据,例 补码:1111100
11、1 取反:10000110 加1:10000111=-7,负数补码转换成十进制数:最高位不动,其余位取反加1,整型数据,考虑补码:1000000000000000、1111111111111111的十进制数,负数补码转换成十进制数:最高位不动,其余位取反,得到 十进制数减1,整型数据,整型变量,定义:int 变量名,变量名2,变量名n;,int必须小写,至少一个空格,必须为合法的标识符,以逗号,分隔,以分号;结尾,定义时可以赋初值,方法:在变量名后面增加“=数值”,例:int a;int x,y,z;int m=2,y=-3;,整型数据,整型变量的分类,控制变量是否有符号:signed(有符号
12、)和unsigned(无符号)控制整型变量的值域范围:short(短)和long(长)。,在int前可以根据需要可加上修饰符,整型数据,符号位,变量a占用的内存单元(2字节),数据位,其值为:65534!,整型数据,有符号短整型(short int或short),short int a=2;/定义一个有符号短整型变量a,并赋初值2 或short a=2;占用的内存单元为2个字节,无论是TC还是VC。,无符号短整型(unsigned short int或unsigned short),unsigned short int a=2;/定义一个无符号短整型变量a,并赋初值2 或unsigned sh
13、ort a=2;占用的内存单元字节数同short类型。,整型数据,有符号长整型(long int或long),long int a=234567;/定义一个有符号长整型变量a,并赋初值234567 或long a=234567;占用的内存单元为4个字节,无论是TC还是VC。,无符号长整型(unsigned long int或unsigned long),unsigned long int a=2;/定义一个无符号长整型变量a,并赋初值2 或unsigned long a=2;占用的内存单元字节数同long类型。,整型数据,例 各种整型变量的定义,#include#define SUM 6553
14、5void main()int a,b=20;unsigned int c=0 xff;long D;a=SUM;D=301;printf(a=%dn,a);printf(b=%dn,b);printf(c=%dn,c);printf(“D=%dn”,D);,/文件包含,头文件说明,/定义符号常量SUM,值为65535,/定义两个int型变量a和b,b赋初值20,/定义无符号整型变量c,并赋初值0 xff,/定义长整型变量D,/对a赋值为SUM,这时a的值是65535,/对D赋值为301,/以有符号十进制形式(%d)显示a的值,/以有符号十进制形式(“%d”)显示b的值,/以有符号十进制形式(
15、%d)显示c的值,/以有符号十进制形式(%d)显示D的值,变量定义部分,语句执行部分,在TC3.0下运行结果:a=-1 b=20 c=255 D=301,在VC6.0下运行结果:a=65535 b=20 c=255 D=301,对于16位的有符号整型变量a来说,因65535在内存中的形式为1111111111111111,最高位为1表示负,则其所对应的十进制数就为-1。,整型数据,如果整型常量的值位于-3276832767之间,C语言认为它是int型常 量,它可以赋值给int型和long int 型变量;如果整型常量的值位于-21474836482147483647之间,C语言认为它 是lon
16、g型常量,它可以赋值给long int 型变量。short int与int型数据在内存中占据的长度相同,因此可以相互赋值。整型常量后加字母l或L,认为它是long int 型常量。比如123L、45l、0XAFL。无符号数也可用后缀表示,整型常数的无符号数的后缀为U或u。例 如:358u,0 x38Au,235Lu 均为无符号数。,数据类型、运算符与表达式,学习内容,浮点型数据,浮点型常量,其中:a为十进制数,n为十进制整数,都不可缺少。其可表示为a10n,十进制小数形式:由数字09和小数点组成。,如:0.123,5.6,12.4,指数形式:由十进制数,加阶码标志e或E以及阶码(只能为整数,可
17、以带符号)组成。,一般形式为:aen,如:123.456e2,12.3456e3,1.23456e4,规范化指数形式,合法的实数表示:2.1E5 表示2.1105,3.7E-2 表示3.710-2。,非法的实数表示:345(无小数点),E7(阶码标志E之前无数字),-5(无阶码标志),50.-E3(负号位置不对),浮点型变量,单精度实型(float)float f,g;这种定义的变量在内存中占4个字节(32位)的存储单元。双精度实型(double)double x,y;这种定义的变量在内存中占8个字节(64位)的存储单元。长双精度实型(long double)long double x,y;这
18、种定义的变量在内存中占16个字节(128位)的存储单元。,浮点型数据,浮点型数据,浮点型变量,注意:三种实数类型中,其精度是 float double long double;long float实际上就是double,因此,没有long float类型;,浮点型数据,浮点型数据在内存中的表示方法,符号位,小数部分,指数,浮点型数据一般在内存中占4个字节(32位),按照指数形式存储。,浮点型数据,#include void main()float a;/定义float型变量a double b,c;/定义double型变量b和c a=123.45678;/对变量a赋值为123.45678 b=
19、a;/将变量a赋给变量b c=123.45678;/对变量c赋值为123.45678 printf(a=%f b=%lf c=%lfn,a,b,c);,运行结果:a=123.45676 b=123.45676 c=123.45678,float型变量最多只能精确表示7个数字,因此显示a的值时,只能有效显示前面7个数字即123.4567,最后追加一位数字6是随机的。,数据类型、运算符与表达式,学习内容,字符常量的值:该字符的ASCII码值,转义字符:反斜线后面跟一个字符或一个代码值表示,字符型数据,字符型常量,定义:用单引号括起来的单个普通字符或转义字符.,如 a A?n 101,如 A65,a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二章 数据类型、运算符与表达式 第二 数据类型 运算 表达式
链接地址:https://www.31ppt.com/p-5666389.html