C21第12章 位运算.ppt
《C21第12章 位运算.ppt》由会员分享,可在线阅读,更多相关《C21第12章 位运算.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、新编C语言程序设计教程 清华大学出版社周二强 软件学院 计算机科学与工程系配套视频:配套视频: 博客:博客: 位运算位运算12.1 12.1 位操作符位操作符12.1.1 按位与操作符&12.1.2 按位或操作符12.1.3 异或操作符12.1.4 取反操作符12.1.5 左移操作符12.2 12.2 位运算示例位运算示例12.3 12.3 位段位段位运算位运算是指按二进制位进行的运算,实际上就是直接对整数在内存中的二位运算是指按二进制位进行的运算,实际上就是直接对整数在内存中的二进制位进行操作。进制位进行操作。考虑这样的问题:编程控制编号为考虑这样的问题:编程控制编号为0 0至至7 7的八盏
2、灯的开关。的八盏灯的开关。可以定义一个长度为可以定义一个长度为8 8的短整型数组变量的短整型数组变量a a。可以定义一个无符号的字符型变量可以定义一个无符号的字符型变量c c。如果如果c c的值为的值为128128(1000 00001000 0000),则),则7 7号灯亮,其余灯灭;为号灯亮,其余灯灭;为192192时(时(1100 1100 00000000),则),则6 6号和号和7 7号灯亮,其余的灭。号灯亮,其余的灭。但是要改变某盏灯的状态而不影响其他灯的,却并非易事。但是要改变某盏灯的状态而不影响其他灯的,却并非易事。位操作符C C语言提供的位操作符有按位与语言提供的位操作符有按
3、位与&、按位或、按位异或、按位或、按位异或、取反、取反、左移左移。位操作符的操作数仅限整型(字符型),位操作符的操作数仅限整型(字符型),为简明下面示例中位操作符的操作数多为字符型。为简明下面示例中位操作符的操作数多为字符型。return12.1.1 12.1.1 按位与操作符按位与操作符&按位与操作符按位与操作符&将参与运算的两个操作数,按二位进制位进行将参与运算的两个操作数,按二位进制位进行“与与”运算。与运算时,如果两个二进制位上的数均为运算。与运算时,如果两个二进制位上的数均为1 1,则运算结果的相,则运算结果的相应位为应位为1 1,否则运算结果的相应位为,否则运算结果的相应位为0 0
4、。即。即1&1=11&1=1、1&0=01&0=0、0&1=00&1=0、0&0=00&0=0例如:例如:char a=-2,b=3char a=-2,b=3,则,则a&ba&b的值为的值为2 2。按位与操作符&从按位与操作符从按位与操作符&的运算规则可知,利用按位与操作符的运算规则可知,利用按位与操作符&可以很容易可以很容易地在不影响其它位的情况下将一个整数的某位设置为地在不影响其它位的情况下将一个整数的某位设置为0 0。例如,无符号字符型例如,无符号字符型c c的值为的值为165165(1010 01011010 0101),即现在是第),即现在是第0 0、2 2、5 5、7 7号灯亮。需
5、熄灭第七号灯时,号灯亮。需熄灭第七号灯时,只要让只要让c c与与0 x7f0 x7f(0111 11110111 1111)进行按位与运算即可。)进行按位与运算即可。注意:1.1.按位与操作符也可以构成复合赋值操作符,即按位与操作符也可以构成复合赋值操作符,即c=c&0 x7fc=c&0 x7f可改可改写为写为c&=0 x7fc&=0 x7f。2.2.利用按位与操作符对整型变量利用按位与操作符对整型变量a a的各位进行取舍时,如果保留某的各位进行取舍时,如果保留某位的值,则另一操作数的对应位值为位的值,则另一操作数的对应位值为1 1;如果清零,则对应位的值为;如果清零,则对应位的值为0 0。1
6、&1=11&1=1、1&0=01&0=0、0&1=00&1=0、0&0=00&0=0return12.1.2 12.1.2 按位或操作符按位或操作符按位或操作符将参与运算的两个操作数,按二进制位进行按位或操作符将参与运算的两个操作数,按二进制位进行“或或”运算。或运算时,如果两个二进制位上的数都为运算。或运算时,如果两个二进制位上的数都为0 0,则运算结果的对,则运算结果的对应位为应位为0 0;否则,对应位为;否则,对应位为1 1。即。即1|1=11|1=1、1|0=11|0=1、0|1=10|1=1、0|0=00|0=0。由运算规则可知,利用按位或操作符可以很容易地在不影响其它由运算规则可知
7、,利用按位或操作符可以很容易地在不影响其它位的情况下将一个整数的某位设置为位的情况下将一个整数的某位设置为1 1。例如,无符号字符型例如,无符号字符型c c的值为的值为165165,需点亮,需点亮1 1号灯时,只要让号灯时,只要让c c与与0 x20 x2作作按位或运算即可。按位或运算即可。c|=0 x2 c|=0 x2 return12.1.3 异或操作符 异或操作符异或操作符 也称也称xorxor操作符。操作符。“异或异或”指参与运算的两个二进制位是否为指参与运算的两个二进制位是否为异(不同),不同时结果为异(不同),不同时结果为1 1(真),相同时结果为(真),相同时结果为0 0(假)。
8、即(假)。即1 1=01 1=0、1 0=11 0=1、0 1=10 1=1、0 0=00 0=0。分析运算规则可知,某位与分析运算规则可知,某位与1 1进行异或运算时,结果与该位正好相反(翻进行异或运算时,结果与该位正好相反(翻转),即转),即1 1变变0 0,0 0变变1 1;某位与;某位与0 0进行异或时,结果与该位相同。进行异或时,结果与该位相同。例如,无符号字符型例如,无符号字符型c c的值为的值为165165,需把第,需把第0 0到到3 3号灯的状态进行翻转时即亮号灯的状态进行翻转时即亮的灭,灭的亮,只要让的灭,灭的亮,只要让c c与与0 xf0 xf作异或操作即可。作异或操作即可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C21第12章 位运算 C21 12 运算
限制150内