C程序设计教程第12章枚举类型位运算课件

上传人:新** 文档编号:589649269 上传时间:2024-09-11 格式:PPT 页数:20 大小:282KB
返回 下载 相关 举报
C程序设计教程第12章枚举类型位运算课件_第1页
第1页 / 共20页
C程序设计教程第12章枚举类型位运算课件_第2页
第2页 / 共20页
C程序设计教程第12章枚举类型位运算课件_第3页
第3页 / 共20页
C程序设计教程第12章枚举类型位运算课件_第4页
第4页 / 共20页
C程序设计教程第12章枚举类型位运算课件_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《C程序设计教程第12章枚举类型位运算课件》由会员分享,可在线阅读,更多相关《C程序设计教程第12章枚举类型位运算课件(20页珍藏版)》请在金锄头文库上搜索。

1、C程序设计教程第12章枚举类型、位运算枚举定义枚举定义:变量的取值是有限的、固定的;枚举定义:变量的取值是有限的、固定的;如一周只有七天,一年只有十二个月。如一周只有七天,一年只有十二个月。枚枚举是一个整型符号常量的集合。举是一个整型符号常量的集合。枚举类型定义:枚举类型定义: enum 枚举类型名枚举类型名 枚举值表枚举值表 ;如:如:enum week sun, mon, tue, wed, thu, fri, sat ;enum week sat=6,sun, mon=1, tue, wed=5, thu, fri;枚举值默枚举值默认值从认值从0开始递增开始递增如果进行初始如果进行初始化

2、,后面的枚举常量会以初始化的值化,后面的枚举常量会以初始化的值进行递增,直到遇到另一个枚举常量初始化为止。进行递增,直到遇到另一个枚举常量初始化为止。C程序设计教程第12章枚举类型、位运算枚举类型变量的定义方法一:方法一:enum 枚举类型名枚举类型名 变量名表;变量名表;Enum week w1,w2;方法二:定义类型的同时定义变量方法二:定义类型的同时定义变量enum week Sun, Mon, Tue, Wed, Thu, Fri, Sat w1,w2;C程序设计教程第12章枚举类型、位运算枚举变量的初始化enum week sun, mon, tue, wed, thu, fri,

3、sat w1,w2;w1=mon;w2=sat;printf(“%d,%dn”,w1,w2);则输出结果是多少?1,6C程序设计教程第12章枚举类型、位运算typedef类型定义1.含义:可以为数据类型取别名,别名的作含义:可以为数据类型取别名,别名的作用和数据类型的作用一样。用和数据类型的作用一样。 格式:格式: typedef 类型名类型名 标识符;标识符;含义:定义标识符是类型名的别名含义:定义标识符是类型名的别名typedef int INTEGER;INTEGER a,b,c;作用与作用与int a,b,c;一样一样C程序设计教程第12章枚举类型、位运算枚举编程举例口袋中有红、黄、蓝

4、、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。球只能是5种色之一,而且要判断各球是否同色,应该用枚举类型变量处理。设取出的球为i,j,k。根据题意,i、j、k分别是5种色球之一,并要求i!=j!=k。可以用穷举法,即一种可能一种可能的试,看哪一组符合条件。2024/9/116C程序设计教程第12章枚举类型、位运算用typedef说明类型的步骤1) 先用定义变量的方法写出定义体。先用定义变量的方法写出定义体。2) 把变量名换成新类型名。把变量名换成新类型名。3) 在最前面加上在最前面加上typedef。4) 已定义完新类型名,可用此

5、新类型已定义完新类型名,可用此新类型名去定义变量。名去定义变量。2024/9/117C程序设计教程第12章枚举类型、位运算练习定义定义float类型的别名为类型的别名为 REAL;并用别名并用别名定义两个变量定义两个变量a,b;定义结构体定义结构体struct int month,day,yesr;的类型别名为的类型别名为DATE;并用别名定义结构体变量并用别名定义结构体变量birthday.定义枚举定义枚举 enum date=year,month,day的类型别名为的类型别名为 DATE;并用别名定义两个并用别名定义两个枚举变量枚举变量a=month,b=year;C程序设计教程第12章枚

6、举类型、位运算Typedef练习:定义长度为定义长度为100的整型数组的整型数组int a100;的类型别名为的类型别名为 NUM ;并用;并用别名定义一个数组变量别名定义一个数组变量n;定义字符指针定义字符指针 char *ss的别名为的别名为STRING ;并用别名定义两个字符指;并用别名定义两个字符指针变量针变量p,q。2024/9/119C程序设计教程第12章枚举类型、位运算typedef举例:typedefintINTEGER;INTEGERi,j;-基本类型typedeffloatREAL;REALa,b;-基本类型typedefstruct(union)-结构体(共用体)intm

7、onth,day,yesr;DATE;DATEbirthday,*p;typedefenumdate=year,month,dayDATE;DATEa=month,b=year;typedefintNUM100;NUMn;-数组typedefchar*STRING;STRINGp,s10;-指针typedefint(*POINTER)();POINTERp1,p2;-函数指针2024/9/1110C程序设计教程第12章枚举类型、位运算typedef优点:用typedef可以声明各种类型名,但不能用来定义变量。用typedef声明数组类型,字符串类型,结构类型后,使用会比较方便;用typedef

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

9、按位与位与 (双目双目) 8 ( ) 按按位异或位异或(双目双目) 7 ( ) 按按位或位或 (双目双目) 6 ( ) 按按位反位反 (单目单目) 14 ( )位运算符位运算符功能功能优先级优先级结核性结核性注意:注意:1.位运算是对二进制的位进行运算位运算是对二进制的位进行运算 2.只能对只能对int型、型、char型和型和long型进行型进行位运算位运算2024/9/1112C程序设计教程第12章枚举类型、位运算真值表真值表真值表真值表 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

10、 0 1 1 1 0 0 0 1 1 0 0 0真值表真值表 a b a b a&b ab 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1位运算位运算2024/9/1113C程序设计教程第12章枚举类型、位运算左移运算左移功能:把左边的运算数的各个二进位全部左移若干位,由右边的数指定移动的位数,高位丢弃,低位补0;如a=3;a=a4;后,a=48;如果左移时被舍弃的高位中不包含1,则左移1位相当于乘以2(扩大2倍);如110000002后变为00000000,被舍弃的高位中含有1,因此虽左移2位,值并没有扩大4倍。而00110000左边的运算数的各个二进位全部右

11、移若干位,由右边的数指定移动的位数,高位丢弃,低位补0;如a=16;a=a2;后,a=4;如果右移时被舍弃的低位中不包含1,则右移1位相当于除以2(缩小2倍);如00011112后变为00000011,被舍弃的低位位中含有1,因此虽右移2位,值并没有缩小4倍。而001100002后变为00001100;被舍弃的低位中不包括1,所以值缩小4倍如果高位为1,则右移时高位补1,高位为0,高位补0;2024/9/1115C程序设计教程第12章枚举类型、位运算实例:已知:int x=7,y=10,z=1;设字长为8位,求: 2 (0000 0111 & 0000 1010 = 0010) 1 (0000

12、 0111 & 0000 0001 = 0001) 15 (0000 0111 0000 1010 = 1111) 11 (0000 1010 0000 0001 = 1011) 13 (0000 0111 0000 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 =2024/9/1116C程序设计教程第12章枚举类型、位运算格式:格式:sizeof (

13、表达式或数据类型)(表达式或数据类型)功能:求运算对象在内存中所占的字节数功能:求运算对象在内存中所占的字节数求:求:printf(“%d,%dn”, sizeof ( int ), sizeof ( char ) );五. sizeof 运算符结果:结果:2,1求:求:printf(%d, sizeof(ASTn01212);结果:结果:102024/9/1117C程序设计教程第12章枚举类型、位运算功能,优先级,功能,优先级, 结合结合性性单目,双目,三目,结果单目,双目,三目,结果运算符小结运算符小结算术运算符算术运算符: +,-,*,/,%赋值运算符赋值运算符: =关系运算符关系运算符

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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号