C程序设计教程第8章.ppt
《C程序设计教程第8章.ppt》由会员分享,可在线阅读,更多相关《C程序设计教程第8章.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、n主讲人:第第8 8章章 位运算位运算 第第8 8章章 位运算位运算n位运算是对C语言功能的扩展,使C语言在控制系统中的应用更加灵活,运算效率更高并且更加节省存储空间。n本章主要内容:n8.1 位运算概述n8.2 位运算符的使用方法n8.3 位段n8.4 位运算举例第第8 8章章 位运算位运算8.1 8.1 位运算概述位运算概述n所谓位运算是指进行二进制数的运算。在计算机中真正执行的是机器指令,机器指令是由0和1所组成的二进制数表示的。每一个0或1称为一个“位”,要实现对计算机的操作就是实现对这些“位”的操作。nC语言所提供的位运算的功能,使得对计算机的操作更加灵活,更加高效,并且在一些控制领
2、域的应用中极大地节省了数据的存储空间,提高了程序的效率。nC语言所提供的位运算符如表8-1所示。8.1 8.1 位运算概述位运算概述 表8-1位运算符 运算符含义&|按位与按位或取反按位异或左移右移8.2 位运算符的使用方法位运算符的使用方法n8.2.18.2.1按位按位“与与”运算符(运算符(&)n8.2.28.2.2按位按位“或或”运算符(运算符(|)n8.2.3 8.2.3 按位按位“取反取反”运算符()运算符()n8.2.4 8.2.4 按位按位“异或异或”运算符(运算符()n8.2.5 8.2.5“左移左移”运算符(运算符()8.2.18.2.1按位按位“与与”运算符(运算符(&)n
3、按位与运算符“&”为二目(元)运算符,要求有两个运算量。作用是将两个运算量中的各个位分别对应进行“与”运算。如果两个相应的位都为1,则“与”运算后的结果为1;否则该位的结果为0。即:n0&0=0;n0&1=0;n1&0=0;n1&1=1;n例如,两个char类型的数据22和15,进行与运算,结果为6。8.2.18.2.1按位按位“与与”运算符(运算符(&)【例8.1】实现两个数据的与操作。程序的运行过程及结果如下:图8-1 例题8.1的执行结果 8.2.18.2.1按位按位“与与”运算符(运算符(&)按位与运算主要用于对一个数据中的某些位进行屏蔽,或者仅仅取出数据中的某些位中的数值。【例8.2
4、】屏蔽掉输入数据中的高四位,或者说取出输入数据中的低四位。程序的运行过程及结果如下:8.2.18.2.1按位按位“与与”运算符(运算符(&)图8-2 例题8.2的执行结果n从结果中可以看出,高4位数据被清零,低4位数据被保留。0 x0f称为屏蔽字。因此,当需要取出数据中的某些位时,只是把对应位的屏蔽字置1即可。例如,若要取出某一数据的1、3、5、7位数据,只是需要把屏蔽字设置为“0 xAA”或(10101010)2。8.2.28.2.2按位按位“或或”运算符(运算符(|)n按位或运算符“|”为二目(元)运算符,要求有两个运算量。作用是将两个运算量中的各个位分别对应进行“或”运算。如果两个运算量
5、的相应位中有一个为1,则“或”运算后的结果为1;否则该位的结果为0。即:n0|0=0;n0|1=1;n1|0=1;n1|1=1;8.2.28.2.2按位按位“或或”运算符(运算符(|)例如,两个char类型的数据22和15,进行或运算,结果为31。【例8.3】实现两个数据的或操作。程序的运行过程及结果如下:图8-3 例题8.3的执行结果 按位或操作主要用于对一个数据中的某些位置1。例如,若要使某一数据的第1、3、5、7位数据置1,只要使该数据和“0 xAA”进行或运算即可。8.2.28.2.2按位按位“或或”运算符(运算符(|)8.2.28.2.2按位按位“或或”运算符(运算符(|)【例8.4
6、】把输入数据的高四位置1,低四位保留。程序的运行过程及结果如下:图8-4 例题8.4的执行结果 8.2.3 8.2.3 按位按位“取反取反”运算符()运算符()n按位取反运算符“”为单目(元)运算符。作用是将一个二进制数按位取反,即将0变1,1变0。n例如,将char类型的数据22,进行取反,结果为233。【例8.5】把输入的数据进行取反操作。8.2.3 8.2.3 按位按位“取反取反”运算符()运算符()程序的运行过程及结果如下:图8-5 例题8.5的执行结果8.2.4 8.2.4 按位按位“异或异或”运算符(运算符()n按位异或运算符“”也称为XOR运算符,为二目(元)运算符,要求有两个运
7、算量。作用是将两个运算量中的各个位分别对应进行“异或”运算。规则为:若参加运算的相应位同号,则结果为0;异号则为1。即:n00=0;n01=1;n10=1;n11=0;8.2.4 8.2.4 按位按位“异或异或”运算符(运算符()n例如,两个char类型的数据22和15,进行异或运算,结果为25。【例8.6】实现两个数据的或操作。8.2.4 8.2.4 按位按位“异或异或”运算符(运算符()程序的运行过程及结果如下:图8-6 例题8.6的执行结果 8.2.5 8.2.5“左移左移”运算符(运算符()n按位左移运算符“”为二目(元)运算符,其作用是将一个数中各个二进制位全部左移若干位。高位左移后
8、溢出,低位补0。例如,x3。n左移一位相当于该数乘以21,左移n位相当于乘以2n,“22”左移3位,相当于乘以23为176。需要注意的是,此结论只适用于左移时溢出的高位中不包含1的情况。左移运算比乘法运算快很多。8.2.5 8.2.5“左移左移”运算符(运算符()【例8.7】把输入的数据进行左移操作。程序的第一次运行过程及结果如下:程序的第一次运行过程及结果如下:图8-7 例题8.7的第一次执行结果8.2.5 8.2.5“左移左移”运算符(运算符(”为二目(元)运算符,其作用是将一个数中各个二进制位全部右移若干位。右移运算对带符号数和无符号数有不同的操作。n1、对于带符号的数据,如果符号位为0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 教程
限制150内