网站大量收购独家精品文档,联系QQ:2885784924

第10章-全国计算机等级考试二级C语言--位运算.pptVIP

第10章-全国计算机等级考试二级C语言--位运算.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

;;10.1位运算符和位运算;;;;;;;;;;;;;;②与0进行异或运算,保存原值。

例如:13^0=13

^③交换两个变量的值,不用中间变量。

a=5,b=8,如果想使a与b的值交换,可用以下赋值语句来实现:

a=a^b;

b=a^b;

a=a^b;

a=0101a=1101a=1101

^b=1000^b=1000^b=0101

a=1101b=0101〔十进制5〕a=1000〔十进制8〕

可见,变量a与b的值进行了交换。

a=a^b,实际上进行了下面两步运算:

①b=b^a=b^(a^b)=b^a^b=a^b^b=a^(b^b)=a^0=a

②a=a^b=(a^b)^a=a^b^a=(a^a)^b=0^b=b;;;;;;例10.5对整型变量b进行按位左移2位运算,输出左移运算后的值。

#includestdio.h

voidmain()

{unsigneda,b;

b=12;a=b2;/*b按位左移2位后赋给a*/

printf(a=%d\n,a);

};;;;;;;10.2位段结构;;1.位段结构的定义和位段变量的说明

C语言中没有专门的位段类型,位段的定义要借助于结构体,即以二进制位为单位定义结构体成员所占存储空间,从而就可以按“位”来访问结构体中的成员。位段结构的定义与结构体定义相仿,其一般形式为:

struct位段结构名

{

类型说明符位段名:位段长度

};;而位段变量的说明与结构变量说明的方式相同。可采用先定义后说明,同时定义说明或者直接说明这三种方式。例如,下面方式为同时定义说明:

structbs

{inta:8;

intb:2;

intc:6;

}data;

定义了一个位段结构类型bs,包含3个位段成员,其中位段a占8位,位段b占2位,位段c占6位,同时说明data为bs变量,共占两个字节。由此可以看出,位段在本质上就是一种结构类型,不过其成员是按二进位分配的。;2.位段的引用和赋值

与结构体成员的引用相同,其一般形式为:

位段变量名.位域名

例如,对于上述位段变量data,data.a、data.c分别表示引用变量data中的位段a、c。

位段可以在定义的同时赋初值,形式与结构体变量赋初值相同。位段???可以进行赋值操作,例如:

data.a=1;

data.b=4;

data.c=6;

但是,赋值时应注意位段的取值范围,例如:

data.c=2;

就会产生错误的结果。因为data.c只占1位,只能取值0或1。对于赋值语句:data.c=2;系统并不报错,而是自动截取所赋值的低位:2的二进制码是10,取低一位为0。所以data.c的值为0。;3.使用位段的本卷须知

①位段成员的类型必须是unsigned或int类型。

②每个位段不能超过一个字长〔int的长度〕。

③位段不能跨越两个字。

④在位段结构类型中,可以说明无名位段,这种无名位段具有位段之间的分隔作用。例如:

structbs

{intx:1;

int:2;

inty:3;

};

其中第2个位段是无名位段,占2位,在位段x和y之间起分隔作用。无名位段所占用的空间不起作用。如果无名位段的长度为0,那么表示下一个位段从一个新的字节开始存放。

⑤位段成员可以在数值表达式中被引用,系统自动将其转换为相应的整数。

文档评论(0)

寒傲似冰 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8071104010000026

1亿VIP精品文档

相关文档