C++程序设计教程第8章0.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计教程第8章0

第8章 位运算 主讲人: 第8章 位运算 位运算是对C语言功能的扩展,使C语言在控制系统中的应用更加灵活,运算效率更高并且更加节省存储空间。 本章主要内容: 8.1 位运算概述 8.2 位运算符的使用方法 8.3 位段 8.4 位运算举例 8.1 位运算概述 所谓位运算是指进行二进制数的运算。在计算机中真正执行的是机器指令,机器指令是由0和1所组成的二进制数表示的。每一个0或1称为一个“位”,要实现对计算机的操作就是实现对这些“位”的操作。 C语言所提供的位运算的功能,使得对计算机的操作更加灵活,更加高效,并且在一些控制领域的应用中极大地节省了数据的存储空间,提高了程序的效率。 C语言所提供的位运算符如表8-1所示。 8.1 位运算概述 表8-1位运算符 8.2 位运算符的使用方法 8.2.1按位“与”运算符() 8.2.2按位“或”运算符(|) 8.2.3 按位“取反”运算符(~) 8.2.4 按位“异或”运算符(∧) 8.2.5 “左移”运算符() 8.2.6 “右移”运算符() 8.2.1按位“与”运算符() 按位与运算符“”为二目(元)运算符,要求有两个运算量。作用是将两个运算量中的各个位分别对应进行“与”运算。如果两个相应的位都为1,则“与”运算后的结果为1;否则该位的结果为0。即: 00=0; 01=0; 10=0; 11=1; 例如,两个char类型的数据22和15,进行与运算,结果为6。 8.2.1按位“与”运算符() 【例8.1】实现两个数据的与操作。 程序的运行过程及结果如下: 图8-1 例题8.1的执行结果 8.2.1按位“与”运算符() 按位与运算主要用于对一个数据中的某些位进行屏蔽,或者仅仅取出数据中的某些位中的数值。 【例8.2】屏蔽掉输入数据中的高四位,或者说取出输入数据中的低四位。 程序的运行过程及结果如下: 8.2.1按位“与”运算符() 图8-2 例题8.2的执行结果 从结果中可以看出,高4位数据被清零,低4位数据被保留。0x0f称为屏蔽字。因此,当需要取出数据中的某些位时,只是把对应位的屏蔽字置1即可。例如,若要取出某一数据的1、3、5、7位数据,只是需要把屏蔽字设置为“0xAA”或2。 8.2.2按位“或”运算符(|) 按位或运算符“|”为二目(元)运算符,要求有两个运算量。作用是将两个运算量中的各个位分别对应进行“或”运算。如果两个运算量的相应位中有一个为1,则“或”运算后的结果为1;否则该位的结果为0。即: 0|0=0; 0|1=1; 1|0=1; 1|1=1; 8.2.2按位“或”运算符(|) 例如,两个char类型的数据22和15,进行或运算,结果为31。 【例8.3】实现两个数据的或操作。 程序的运行过程及结果如下: 图8-3 例题8.3的执行结果 按位或操作主要用于对一个数据中的某些位置1。例如,若要使某一数据的第1、3、5、7位数据置1,只要使该数据和“0xAA”进行或运算即可。 8.2.2按位“或”运算符(|) 【例8.4】把输入数据的高四位置1,低四位保留。 程序的运行过程及结果如下: 图8-4 例题8.4的执行结果 8.2.3 按位“取反”运算符(~) 按位取反运算符“~”为单目(元)运算符。作用是将一个二进制数按位取反,即将0变1,1变0。 例如,将char类型的数据22,进行取反,结果为233。 【例8.5】把输入的数据进行取反操作。 8.2.3 按位“取反”运算符(~) 程序的运行过程及结果如下: 图8-5 例题8.5的执行结果 8.2.4 按位“异或”运算符(∧) 按位异或运算符“∧”也称为XOR运算符,为二目(元)运算符,要求有两个运算量。作用是将两个运算量中的各个位分别对应进行“异或”运算。规则为:若参加运算的相应位同号,则结果为0;异号则为1。即: 0∧0=0; 0∧1=1; 1∧0=1; 1∧1=0; 8.2.4 按位“异或”运算符(∧) 例如,两个char类型的数据22和15,进行异或运算,结果为25。 【例8.6】实现两个数据的或操作。 8.2.4 按位“异或”运算符(∧) 程序的运行过程及结果如下: 图8-6 例题8.6的执行结果 8.2.5 “左移”运算符() 按位左移运算符“”为二目(元)运算符,其作用是将一个数中各个二进制位全部左移若干位。高位左移后溢出,低位补0。例如,x3。 左移一位相当于该数乘以21,左移n位相当于乘以2n,“22”左移3位,相当于乘以23为176。需要注意的是,此结论只适用于左移时溢出的高位中不包含1的情况。左移运算比乘法运算快很多

文档评论(0)

haowendangqw + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档