- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
12.1 位运算 C语言具有位逻辑运算和移位运算的独特功能,参与位运算的运算量必须是整数。位逻辑运算包括、|、∧、~四种运算,移位运算有、两种运算。其中~位单目运算符。 12.1.1 按位与 12.1.2 按位或 12.1.3 按位异或 12.1.4 按位取反 12.1.5 按位左移 12.1.6 按位右移 12.1.7 位运算的复合赋值运算符 12.1.1 按位与 12.1.2 按位或 12.1.3 按位异或 12.1.4 按位取反 12.1.5 按位左移 12.1.6 按位右移 12.1.7 位运算的复合赋值运算符 12.2 位段的概念 * * ? ? ? ? ? ? ? ? ? ? ? ? ? ? 参与运算的量,如果相对应的两位都为1,则该位的结果值为1,否则为0,即: 00==0 01==0 10==0 11==1 如:a的值为0x1234,b的值为0x00,ab运算的结果c应为: a 0001 0010 0011 0100 b 0000 0000 1111 1111 c 0000 0000 0011 0100 按位与常用于将某个运算量的某些位清0或提取某些位的值,如本例中,将变量的高8位清0,同时保留或提取低8位的值,可用一个高8位为0,低8位为1的值0x00ff和它进行按位与。 ? ? ? ? ? ? 参与运算的量,如果相对应的两位都为0,则该位的结果值为0,否则为1,即: 0|0==0 0|1==1 1|0==1 1|1==1 如:a的值为0x1234,b的值为0x00,a|b运算的结果c应为: a 0001 0010 0011 0100 |b 0000 0000 1111 1111 c 0001 0010 1111 1111 按位或常用于将某个运算量的某些位置1,如本例中将变量的低8位置1,高8位不变,可用一个高8位为0,低8位为1的值0x00ff和它进行按位或。 ? ? ? ? ? ? 参与运算的量,如果相对应的两位相异,则该位的结果为1,否则为0,即: 0∧0==0 0∧1==1 1∧0==1 1∧1==0 如:a的值为0x1234,b的值为0x00,a∧b运算的结果c应为: a 0001 0010 0011 0100 ∧b 0000 0000 1111 1111 c 0001 0010 1100 1011 按位异或有“与1异或”该位翻转,“与0异或”该位不变的规律。如本例中用0x00ff进行按位异或,使变量a的低8位翻转,高8位不变。 ? ? ? ? ? ? 将参与运算量的相对应位的值取反,即1变0,0变1。 如:a的值为0x1234,~a运算的结果c应为: ~a 0001 0010 0011 0100 c 1110 1101 1100 1011 ? ? ? ? ? ? 按位左移是将一个运算量的各位依次左移若干位,低位补0,高位舍弃不要。 假设机器字长为8位,变量a的值为16,将a左移二位,即a=a2: 左移前 0001 0000 左移后 0100 0000 由此看出,左移一位相当于该数乘2,左移二位相当于乘4,即22,但这要以该数左移之后不“溢出”为前提。所谓“溢出”指该数已超过机器字长所能容纳的范围,如该例若继续左移二位,该数为16× 24=256,超出了字长8位的表示范围(257),即产生了溢出。 ? ? ? ? ? ? 按位右移是将一个运算量的各位依次右移若干位,低位被移出,高位对无符号数补0,对有符号数要按最高符号位自身填补。 右移一位相当于该数除以2,但有可能带来误差。假设机器字长为8位,变量a值为15,将a右移二位,即a=a2: 右移前 0000 1111 右移后 0000 0011 如果a是带符号的负数,a=-16,存放在机器中的补码为1111 0000,则a=a2,值为- 4。 右移前 1111 0000 右移后 1111 1100 表12.
您可能关注的文档
- xy-焊缝金属构成习题课.ppt
- 东北大学,销售行为学,课件,第九篇 销售行为学向客户关系管理的扩展.ppt
- 函数Y=Asin(Wx+Q)-图象2.ppt
- 光在晶体传播.ppt
- SSP第5篇晶体电子运动110808.ppt
- 光谱学第三节-13.ppt
- 低压电器 第二、三节2.ppt
- p第十六节机械振动基础.ppt
- PPT商务模板最全3D小人系列之16-电脑系列.ppt
- POCT及新医改(韦志福20110810南宁市).ppt
- c语言程序设计及项目实践第5章.ppt
- 2013届高三化学二轮复习 专题大突破 2-1物质的组成、分类与性质 化学用语课件.ppt
- 2013届高考物理一轮复习第二节 相互作用 实验三 验证力的平行四边形定则 课件.ppt
- CWI培训课件--第六章 金属的特性与破坏性试验第六单元.ppt
- 2013届高考数学考点回归总复习《第七讲 函数的奇偶性及周期性》课件.ppt
- 2013高考一轮复习优秀课件:光电效应+原子结构及原子核 第三单元 第4课时.ppt
- 2013高考生物大一轮复习 第6单元 遗传的物质基础 第20课时 基因指导蛋白质的合成和对性状的控制课件.ppt
- 2013第六届亚洲(北京)国际信息网络和技术设备展览会.ppt
- 2013-2014学年 新课标高中化学总复习课件:第6单元第30讲 物质制备与定量实验.ppt
- CH2第3节 随机变量分布函数.ppt
文档评论(0)