第9章位运算.ppt
《第9章位运算.ppt》由会员分享,可在线阅读,更多相关《第9章位运算.ppt(38页珍藏版)》请在三一办公上搜索。
1、第9章 位运算,教学目的:通过本章的学习,要求能理解二进制位运算操作和位段结构,能熟练使用位运算符进行程序设计,学习位操作能够为硬件平台的程序设计奠定基础,为后续课程的学习起到铺垫作用。,第9章 位运算,结构和内容,第9章 位运算,重点和难点 重点:(1)位逻辑运算(2)移位运算(3)复合赋值位运算(4)不等长数据的位运算(5)位段的结构、存储及使用 难点:(1)不等长数据的位运算(2)位段的结构、存储及使用,9.1 位运算的C程序实例,位运算引例【例9.1】一个简单的位运算C程序/*源文件名:Li9_1.c功能:从键盘输入两个整数a和b,分别对其进行位运算。*/,#include void
2、main()int a,b;int e,f,g,h,i;puts(请输入整数a和b:);/*打印输出一串字符串*/scanf(“%d%d”,9.2 二进制位运算,9.2.1 位逻辑运算,位操作是对字节或字节内的二进制位进行测试、设置或逻辑的运算。位操作可以分为两类:一类是位逻辑运算,另一类是移位运算。,位逻辑运算用来对某一个或某一对二进制位进行操作,其运算符有以下几个:表示按位取反&表示按位与 表示按位或 表示按位异或 除了是一元运算符外,&、都是二元运算符。位逻辑运算的运算对象是整数。,位逻辑运算规则与逻辑运算(&、!)一样,也可用真值表表示。设a、b分别表示一个二进制位,则按位逻辑运算的真
3、值表可表示成如表9-1所示的形式。,表9-1 逻辑运算符的运算规则,按位与运算按位或运算按位异或运算按位取反运算,9.2.1 位逻辑运算,按位与运算,按位与逻辑运算的运算规则是:只有对应的位均为1时,与运算的结果才为1,其他的情况均为0。即:0&0=0 0&1=0 1&0=0 1&1=1【例9.2】令a=10,b=8,c=a&b,求c的值。c的内容可以通过下式运算:00001010 00001000 00001000,/*源文件名:Li9_2.c功能:令a=10,b=8,c=a,按位与运算的用途有以下几个方面:可以对某位进行清零操作。此时只需将需要清零的对应位与0位进行“按位与”操作即可。例如
4、:若将00010011的低4位清零,只需将其低4位与零相与,高4位与1相与即可,也就是进行以下的操作:00010011 11110000 00010000即将00010011与11110000进行与操作就可以满足要求。可以提取某些位。此时只需将需要提取的位与1进行“按位与”操作即可。例如:保留1100011中的最高位,其余位清零,可用如下的操作:11000110 10000000 10000000则上述与操作完成后,1100011就变成了10000000,(&),(&),按位或运算,按位或运算的运算规则是:只有按位或操作的对应位均为零时,结果才为零,其他情况按位或的结果均为1。即,0|0=0
5、0|1=1 1|0=1 1|1=1【例9.3】令a=12,b=9,c=a|b,求c的值。c的内容可以通过下式运算:00001100 00001001 00001101,/*源文件名:Li9_3.c功能:令a=12,b=9,c=a|b,求c的值。*/#include void main()int a=12,b=9;int c;c=a|b;printf(c=%dn,c);,按位或运算的用途主要是对某位进行置1操作,例如:将00100010的高四位置1,可以将其与11110000进行“按位或”运算。具体如下:00100010 11110000 11110010,(|),按位异或运算,按位异或的运算规
6、则是:参与按位异或运算的两个二进制位如果相同,则结果为0,如果不同则结果为1。即,00=0 01=1 10=1 11=0【例9.4】令a=10,b=8,c=ab,求c的值。c的内容可以通过下式运算:00001010 00001000 00000010,/*源文件名:Li9_4.c功能:令a=10,b=8,c=ab,求c的值。*/#include void main()int a=10,b=8;int c;c=ab;printf(c=%dn,c);,按位异或运算主要有以下三个用途:与0异或,可以保留原值。因为原数中的1与0进行异或运算得1,0与0进行异或运算得0。例如将035与00按位异或可以保
7、留035。具体如下:00011101 00000000 00011101将特定位翻转。例如:将10001111的高四位进行翻转,即1变成0、0变成1,则可以使用异或运算。具体如下:()10001111 11110000 01111111,不用临时变量交换两个值。在以前的章节中介绍交换变量时,需要借助第三个临时变量来完成;而通过异或运算则不需要第三个变量即可以完成交换两个值的操作。例如a=5,b=4,请用异或操作完成a=4,b=5。具体如下:b=ab=101100=001 a=ab=101001=100 b=ab=100001=101 经过上述操作后即可完成交换a与b的值的操作,即 a=100=
8、4,b=101=5。,按位取反运算,按位取反运算的运算规则是:0的按位取反结果为1,1的按位取反结果为0。即,0=1 1=0【例9.5】令a=10,c=a,求c的值。c的内容可以通过下式运算:()00001010 11110101,/*源文件名:Li9_5.c功能:令a=10,c=a,求c的值。*/#include void main()int a=10;int c;c=a;printf(c=%dn,c);,位运算符的优先级是:按位取反优先级最高,其次是按位与和按位异或,最低的是按位或。位运算与其他运算符之间的运算优先级和结合性参见附录中介绍。,9.2.2 移位运算,移位运算实现二进制位的顺序
9、向左或向右移位。,左移位运算右移位运算,左移位运算,左移位运算符是,其语法格式为:an 其中,a是操作数,可以是一个char型或整型的变量或表达式;n是待移位的位数,必须是正整数。功能是将a中所有的二进制位数向左移动n位。左移位的运算规则是:在移位过程中,各个二进位顺序向左移动,右端空出的位补0,移出左端之外的位则被舍弃。例如,a=10,其二进制的存储形式为00001010,则a2表示将a的各个二进制位顺序左移2位:00101000,即十进制的40。由左移位的规则可以看出,对于无符号数而言,左移位相当于乘2运算,左移n位相当于乘2的n次方。,右移位运算,右移位运算符是,其语法格式为:an 其中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算
链接地址:https://www.31ppt.com/p-5117078.html