- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 枚举 位运算
第十章 枚举,位运算
枚举
在实际问题中, 有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月, 一个班每周有六门课程等等。如果把这些量说明为整型, 字符型或其它类型显然是不妥当的。 为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值, 被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是, 枚举类型是一种基本数据类型,而不是一种构造类型, 因为它不能再分解为任何基本类型。
枚举类型的定义和枚举变量的说明
一、枚举的定义枚举类型定义的一般形式为:enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如: enum weekday{ sun,mou,tue,wed,thu,fri,sat };该枚举名为weekday,枚举值共有7个,即一周中的七天。 凡被说明为weekday类型变量的取值只能是七天中的某一天。
二、枚举变量的说明 如同结构和联合一样,枚举变量也可用不同的方式说明, 即先定义后说明,同时定义说明或直接说明。设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:enum weekday{......};enum weekday a,b,c;或者为: enum weekday{......}a,b,c;或者为: enum{......}a,b,c;
枚举类型变量的赋值和使用
枚举类型在使用中有以下规定:1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值: sun=5;mon=2;sun=mon; 都是错误的。
2. 枚举元素本身由系统定义了一个表示序号的数值,从0 开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1, …,sat值为6。main(){enum weekday{ sun,mon,tue,wed,thu,fri,sat } a,b,c;a=sun;b=mon;c=tue;printf(%d,%d,%d,a,b,c);}3. 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如: a=sum;b=mon; 是正确的。而: a=0;b=1; 是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换,如: a=(enum weekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于: a=tue; 还应该说明的是枚举元素不是字符常量也不是字符串常量, 使用时不要加单、双引号。main(){enum body{ a,b,c,d } month[31],j;int i;j=a;for(i=1;i=30;i++){month[i]=j;j++;if (jd) j=a;}for(i=1;i=30;i++){switch(month[i]){case a:printf( %2d %c\t,i,a); break;case b:printf( %2d %c\t,i,b); break;case c:printf( %2d %c\t,i,c); break;case d:printf( %2d %c\t,i,d); break;default:break;}}printf(\n);}
位运算
前面介绍的各种运算都是以字节作为最基本位进行的。 但在很多系统程序中常要求在位(bit)一级进行运算或处理。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。一、位运算符C语言提供了六种位运算符: 按位与| 按位或^ 按位异或~ 取反 左移 右移
1. 按位与运算 按位与运算符是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。例如:95可写算式如下:(9的二进制补码(5的二进制补码)(1的二进制补码)可见95=1。
按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a255 运算 ( 255 的二进制数为0000000011111111)。main(){int a=9,b=5,c;c=ab;printf(a=%d\nb=%d\nc=%d\n,a,b,c);}
2. 按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。例如:9|5可写算式如下:
您可能关注的文档
- 社会实践(材料0903陈珂).doc
- 社会实践心得1·2·3.doc
- 社会实践活动报告(电台导播).doc
- 社会实践报告之暑期海报员的心得体会.doc
- 社会实践计划大纲(思想道德修养与法律基础).doc
- 社会实践调查报d d d.doc
- 磷酸铁锂动力电池的高低温性能解决途径.ppt
- 社会活动实践论文.doc
- 社会热点题.doc
- 社会心理学 第一讲导论.ppt
- 基本面选股组合月报:大模型AI选股组合本年超额收益达6.60.pdf
- 可转债打新系列:安集转债,高端半导体材料供应商.pdf
- 可转债打新系列:伟测转债,国内头部第三方IC测试企业.pdf
- 联想集团PC换机周期下的价值重估.pdf
- 计算机行业跟踪:关税升级,国产突围.pdf
- 科技类指数基金专题研究报告:详解AI产业链指数及基金布局.pdf
- 计算机行业研究:AIAgent产品持续发布,关税对板块业绩影响较小.pdf
- 民士达深度报告:国内芳纶纸龙头,把握变局期崛起机遇.pdf
- 社会服务行业动态:全球首张民用无人驾驶载人航空器运营合格证落地,霸王茶姬冲击美股IPO.pdf
- 通信行业研究:特朗普关税令落地,长期看好国产算力链.pdf
最近下载
- [海口]2024年中国热带农业科学院海口实验站招聘笔试历年参考题库(频考点试卷)解题思路附带答案详解.docx VIP
- 基于博弈论的混合车辆交互变道决策模型研究.pdf
- 光伏工程质量工艺标准化手册 {电气安装工程篇(通用)}.docx
- 2024年河南工业和信息化职业学院单招职业技能测试题库及完整答案.docx VIP
- 年产3000吨速溶复合设计.docx VIP
- 江苏省沭阳县2021-2022学年八年级下学期期中质量调研数学试卷(无答案).docx VIP
- 人工智能在小学语文教学中的创新教学研究课题报告.docx
- mu960模块硬件接口手册v.pdf
- 国企央企财务岗笔试题及答案.pdf
- 英语时间表达专项练习.pdf
文档评论(0)