枚举类型及位运算

枚举类型及位运算

ID:39288834

大小:416.31 KB

页数:31页

时间:2019-06-29

枚举类型及位运算_第1页
枚举类型及位运算_第2页
枚举类型及位运算_第3页
枚举类型及位运算_第4页
枚举类型及位运算_第5页
资源描述:

《枚举类型及位运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十二章枚举类型及位运算主要内容12.1枚举12.2类型定义12.3位运算符和位运算§12.1枚举类型枚举:将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。枚举类型的定义用enum一般形式:enum枚举名{枚举值表};如:enumweekday{sun,mon,tue,wed,thu,fri,sat};定义变量:enumweekdayworkday,week-day;enum{sun,mon,tue,wed,thu,fri,sat}workday;enumweekday{sun,mon,tue,wed,thu,fri,sat}workday;变

2、量值只能是sun到sat之一枚举元素枚举常量§12.1枚举类型说明:在C编译中,对枚举元素按常量处理,故称枚举常量。它们不是变量,不能对它们赋值。例:sun=5;mon=2;(2)枚举元素作为常量,它们是有值的,C语言编译按定义时的顺序使它们的值为0,1,2…(3)枚举值可以用来对枚举元素作判断比较。比较规则:序号大者为大。例:在上例中,mon>sun§12.1枚举类型(4)只能把枚举元素赋予枚举变量,不能把元素的值直接赋给一个枚举变量。例:a=sun;正确a=0;错误a=enumweekday(0);其意义是将顺序号为0的枚举元素赋予枚举变量a。(5)

3、枚举元素的值也可以人为改变,在定义时由程序指定。例:enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};§12.2定义类型(typedef)用typedef声明新的类型名来代替已有的类型名声明INTEGER为整型typedefintINTEGER则:INTEGERa,b;等价于inta,b;用typedef定义的一般形式为:typedef原类型名新类型名§12.2定义类型(typedef)优点:用typedef定义数组、指针、结构等类型,使程序书写简单而且意义更为明确,增强了可读性。用typedef定义类型的方法①先按

4、定义变量的方法写出定义体(如:inti)。②将变量名换成新类型名(例如:将i换成COUNT)。③在最前面加typedef(例如:typedefintCOUNT)。④然后可以用新类型名去定义变量。§12.2定义类型(typedef)用typedef定义类型的方法(举例)①先按定义数组变量形式书写:intn[100];②将变量名n换成自己指定的类型名:intNUM[100];③在前面加上typedef,得到typedefintNUM[100];④用来定义变量:NUMn;§12.2定义类型(typedef)说明:用typedef可以声明各种类型名,但不能用来定义

5、变量。(2)用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。(3)当不同源文件中用到同一类型数据时,常用typedef声明一些数据类型,把它们单独放在一个文件中,然后在需要用到它们的文件中用#include命令把它们包含进来。§12.2定义类型(typedef)说明:(4)typedef与#define有相似之处,例如:typedefintCOUNT;#defineCOUNTint的作用都是用COUNT代表int。但事实上,它们二者是不同的。#define是在预编译时处理的,它只能作简单的字符串替换;而typedef是在编译时处理的

6、。实际上它并不是作简单的字符串替换,而是采用如同定义变量的方法那样来声明一个类型概念位运算是指按二进制位进行的运算。因为在系统软件中,常要处理二进制位的问题。例如:将一个存储单元中的各二进制位左移或右移一位,两个数按位相加等。位运算是C语言的低级语言特性,可以像汇编语言一样用来编写系统程序。§12.3位运算位运算符运算符含义运算符含义&按位与~取反

7、按位或<<左移∧按位异或>>右移(1)位运算符中除~以外,均为二目(元)运算符,即要求两侧各有一个运算量。(2)运算量只能是整型或字符型的数据,不能为实型数据。C语言提供的位运算符有:说明:1.“按位与”运算符

8、(&)按位与:参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。即:0&0=0,0&1=0,1&0=0,1&1=1例:3&5并不等于8,应该是按位与运算:注意:如果参加&运算的是负数(如-3&-5),则要以补码形式表示为二进制数,然后再按位进行“与”运算。00000011(3)&00000101(5)00000001(1)3&5的值得1按位与的用途:若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合以下条件:原来的数中为1的位,新数中相应位为0。然后使二者进行&运算,即

9、可达到清零目的。(1)清零例:原有数为00101011,另找一个数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。