C程序设计教程第12章枚举类型、位运算.ppt

上传人:wuy****n92 文档编号:70102864 上传时间:2023-01-16 格式:PPT 页数:20 大小:268KB
返回 下载 相关 举报
C程序设计教程第12章枚举类型、位运算.ppt_第1页
第1页 / 共20页
C程序设计教程第12章枚举类型、位运算.ppt_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《C程序设计教程第12章枚举类型、位运算.ppt》由会员分享,可在线阅读,更多相关《C程序设计教程第12章枚举类型、位运算.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、枚举定义枚枚举定定义:变量的取量的取值是有限的、固定的;是有限的、固定的;如一周只有七天,一年只有十二个月。如一周只有七天,一年只有十二个月。枚枚举是一个整型符号常量的集合。是一个整型符号常量的集合。枚枚举类型定型定义:enum 枚枚举类型名型名 枚枚举值表表 ;如:如:enum week sun,mon,tue,wed,thu,fri,sat;enum week sat=6,sun,mon=1,tue,wed=5,thu,fri;枚举值默枚举值默认值从认值从0开始递增开始递增如果进行初始如果进行初始化,后面的枚举常量会以初始化的值化,后面的枚举常量会以初始化的值进行递增,直到遇到另一个枚举常

2、量初始化为止。进行递增,直到遇到另一个枚举常量初始化为止。枚举类型变量的定义方法一:方法一:enum 枚枚举类型名型名 变量名表;量名表;Enum week w1,w2;方法二:定方法二:定义类型的同型的同时定定义变量量enum week Sun,Mon,Tue,Wed,Thu,Fri,Sat w1,w2;枚举变量的初始化enum week sun,mon,tue,wed,thu,fri,sat w1,w2;w1=mon;w2=sat;printf(“%d,%dn”,w1,w2);则输出结果是多少?1,6typedef类型定义1.含含义:可以:可以为数据数据类型取型取别名,名,别名的作名的作用

3、和数据用和数据类型的作用一型的作用一样。格式:格式:typedef 类型名型名 标识符;符;含含义:定:定义标识符是符是类型名的型名的别名名typedef int INTEGER;INTEGER a,b,c;作用与作用与int a,b,c;一一样2023/1/166枚举编程举例口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。球只能是5种色之一,而且要判断各球是否同色,应该用枚举类型变量处理。设取出的球为i,j,k。根据题意,i、j、k分别是5种色球之一,并要求i!=j!=k。可以用穷举法,即一种可能一种可能的试,看

4、哪一组符合条件。2023/1/167用typedef说明类型的步骤1)先用定义变量的方法写出定义体。先用定义变量的方法写出定义体。2)把变量名换成新类型名。把变量名换成新类型名。3)在最前面加上在最前面加上typedef。4)已定义完新类型名,可用此新类型已定义完新类型名,可用此新类型名去定义变量。名去定义变量。练习定定义float类型的型的别名名为 REAL;并用并用别名名定定义两个两个变量量a,b;定定义结构体构体struct int month,day,yesr;的的类型型别名名为DATE;并用并用别名定名定义结构体构体变量量birthday.定定义枚枚举 enum date=year,

5、month,day的的类型型别名名为 DATE;并用并用别名定名定义两个两个枚枚举变量量a=month,b=year;2023/1/169Typedef练习:定定义长度度为100的整型数的整型数组int a100;的的类型型别名名为 NUM;并用;并用别名定名定义一个数一个数组变量量n;定定义字符指字符指针 char*ss的的别名名为STRING;并用;并用别名定名定义两个字符指两个字符指针变量量p,q。2023/1/1610typedef举例:typedefintINTEGER;INTEGERi,j;-基本类型typedeffloatREAL;REALa,b;-基本类型typedefstru

6、ct(union)-结构体(共用体)intmonth,day,yesr;DATE;DATEbirthday,*p;typedefenumdate=year,month,dayDATE;DATEa=month,b=year;typedefintNUM100;NUMn;-数组typedefchar*STRING;STRINGp,s10;-指针typedefint(*POINTER)();POINTERp1,p2;-函数指针2023/1/1611typedef优点:用typedef可以声明各种类型名,但不能用来定义变量。用typedef声明数组类型,字符串类型,结构类型后,使用会比较方便;用type

7、def只是对已经存在的类型增加一个类型名,没有创造新的类型。使用typedef有利于程序的通用与移植。如将Inta,b,c;改为longa,b,c;如果程序中多处用Int定义变量,则要改动多处。如果用typedef定义类型:typedefintINTEGER;后,在程序中所有整型变量都用INTEGER定义。改变时,只需把typedefintINTEGER;改变为typedeflongINTEGER;即可2023/1/1612位运算位运算 共有六种共有六种运算符运算符 按按位右移位右移(双目双目)11 ()按按位左移位左移(双目双目)11 ()&按按位与位与 (双目双目)8 ()按按位异或位异或

8、(双目双目)7 ()按按位或位或 (双目双目)6 ()按按位反位反 (单目单目)14 ()位运算符位运算符功能功能优先级优先级结核性结核性注意:注意:1.位运算是对二进制的位进行运算位运算是对二进制的位进行运算 2.只能对只能对int型、型、char型和型和long型进行型进行位运算位运算2023/1/1613真值表真值表真值表真值表 a b aa b a b a b a bb 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0真值表真值表 a b a b a&b ab 0 0 0 0

9、0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1位运算位运算2023/1/1614左移运算左移功能:把左边的运算数的各个二进位全部左移若干位,由右边的数指定移动的位数,高位丢弃,低位补0;如a=3;a=a4;后,a=48;如果左移时被舍弃的高位中不包含1,则左移1位相当于乘以2(扩大2倍);如110000002后变为00000000,被舍弃的高位中含有1,因此虽左移2位,值并没有扩大4倍。而00110000左边的运算数的各个二进位全部右移若干位,由右边的数指定移动的位数,高位丢弃,低位补0;如a=16;a=a2;后,a=4;如果右移时被舍弃的低位中不包含1,则右移1位相当于除以2

10、(缩小2倍);如00011112后变为00000011,被舍弃的低位位中含有1,因此虽右移2位,值并没有缩小4倍。而001100002后变为00001100;被舍弃的低位中不包括1,所以值缩小4倍如果高位为1,则右移时高位补1,高位为0,高位补0;2023/1/1616实例:已知:int x=7,y=10,z=1;设字长为8位,求:2 (0000 0111&0000 1010=0010)1 (0000 0111&0000 0001=0001)15 (0000 0111 0000 1010=1111)11 (0000 1010 0000 0001=1011)13 (0000 0111 0000

11、1010=1101)8 (0000 0111)=1111 1000 7 28 (0000 0111 2=0000 0010)1 (0000 0111 2=0000 0001)x&y=x&z=x y=y z=x y=x =x =x2=x2=2023/1/1617格式:格式:sizeof(表达式或数据类型)(表达式或数据类型)功能:求运算对象在内存中所占的字节数功能:求运算对象在内存中所占的字节数求:求:printf(“%d,%dn”,sizeof(int),sizeof(char);五.sizeof 运算符结果:结果:2,1求:求:printf(%d,sizeof(ASTn01212);结果:结

12、果:102023/1/1618功能,优先级,功能,优先级,结合性结合性单目,双目,三目,结果单目,双目,三目,结果运算符小结运算符小结算术运算符算术运算符:+,-,*,/,%赋值运算符赋值运算符:=关系运算符关系运算符:,=,sizeof(),(type),2023/1/1619运算符的优先级括括 号号 ().-单目运算单目运算 !&*-+-算术运算算术运算 */%+-关系运算关系运算 =!=逻辑运算逻辑运算&|条件运算条件运算?:赋值运算赋值运算 =逗号运算逗号运算 ,位位 位位&|2023/1/16205本章小结p枚举类型是一种基本数据类型,而不是一种构造枚举类型是一种基本数据类型,而不是一种构造类型。类型。p位运算符只有逻辑运算和移位运算两类。位运算位运算符只有逻辑运算和移位运算两类。位运算符可以与赋值符一起组成复合赋值符。如符可以与赋值符一起组成复合赋值符。如&=,|=,=,=,=等。等。p利利用用位位运运算算可可以以完完成成汇汇编编语语言言的的某某些些功功能能,如如置置位位,位位清清零零,移移位位等等。还还可可进进行行数数据据的的压压缩缩存存储储和和并行运算。并行运算。p位位域域在在本本质质上上也也是是结结构构类类型型,不不过过它它的的成成员员按按二二进进制制位位分分配配内内存存。其其定定义义、说说明明及及使使用用的的方方式式都都与与结构相同。结构相同。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁