教学课件C语言程序设计案例教程第9章 位运算.ppt
《教学课件C语言程序设计案例教程第9章 位运算.ppt》由会员分享,可在线阅读,更多相关《教学课件C语言程序设计案例教程第9章 位运算.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件C语言程序设计案例教程第9章 位运算C语言程序设计案例教程 C语言程序设计案例教程 大连理
2、工大学出版社第9章 位运算v教学目的:教学目的:通过本章的学习,要求能理解二进制位运算操作和位通过本章的学习,要求能理解二进制位运算操作和位段结构,能熟练使用位运算符进行程序设计,学习位操作段结构,能熟练使用位运算符进行程序设计,学习位操作能够为硬件平台的程序设计奠定基础,为后续课程的学习能够为硬件平台的程序设计奠定基础,为后续课程的学习起到铺垫作用。起到铺垫作用。 C语言程序设计案例教程 大连理工大学出版社第9章 位运算v本章内容本章内容 位运算的位运算的C C程序引例程序引例二进制位运算二进制位运算位段位段位逻辑运算位逻辑运算复合赋值位运算符复合赋值位运算符位段结构的定义位段结构的定义位段
3、结构的定义位段结构的定义综合实训综合实训位逻辑运算位逻辑运算复合赋值位运算符复合赋值位运算符位段结构的使用位段结构的使用 C语言程序设计案例教程 大连理工大学出版社第9章 位运算v重点和难点重点和难点重点:重点: (1) 位逻辑运算位逻辑运算 (2) 移位运算移位运算 (3) 复合赋值位运算复合赋值位运算 (4) 不等长数据的位运算不等长数据的位运算 (5) 位段的结构、存储及使用位段的结构、存储及使用 难点:难点: (1) 不等长数据的位运算不等长数据的位运算 (2) 位段的结构、存储及使用位段的结构、存储及使用 C语言程序设计案例教程 大连理工大学出版社9.1 位运算的C程序实例位运算引例
4、位运算引例【例例9.1】一个简单的位运算一个简单的位运算C程序程序/*源文件名:源文件名:Li9_1.c功能:从键盘输入两个整数功能:从键盘输入两个整数a和和b,分别对其进行位运算。,分别对其进行位运算。*/ C语言程序设计案例教程 大连理工大学出版社#include void main()int a,b;int e,f,g,h,i;puts(请输入整数请输入整数a和和b:); /*打印输出一串字符串打印输出一串字符串*/scanf(“%d%d”,&a,&b); /*假如这里输入的值为假如这里输入的值为a=2,b=3,那,那么转化为二进制位有么转化为二进制位有a=(00000010)2,b=(
5、00000011)3 ,进行如下运算进行如下运算*/e=a|b; /*a与与b进行或运算,结果存入到变量进行或运算,结果存入到变量e中中*/f=a&b; /*a与与b进行与运算,结果存入到变量进行与运算,结果存入到变量f中中*/g=ab; /*a与与b进行异或运算,结果存入到变量进行异或运算,结果存入到变量g中中*/h=a; /*对对a进行取反运算,结果存入到变量进行取反运算,结果存入到变量h中中*/i=b2; /*对对b进行左移进行左移2位运算,结果存入到变量位运算,结果存入到变量i中中*/9.1 位运算的C程序实例 C语言程序设计案例教程 大连理工大学出版社printf(e=%dn,e);
6、printf(f=%dn,f);printf(g=%dn,g);printf(h=%dn,h);printf(i=%dn,i);9.1 位运算的C程序实例 C语言程序设计案例教程 大连理工大学出版社 位操作是对字节或字节内的二进制位进行测试、设置或位操作是对字节或字节内的二进制位进行测试、设置或逻辑的运算。位操作可以分为两类:一类是位逻辑运算,另一逻辑的运算。位操作可以分为两类:一类是位逻辑运算,另一类是移位运算。类是移位运算。9.2 二进制位运算9.2.1 位逻辑运算 位逻辑运算用来对某一个或某一对二进制位进行操作,位逻辑运算用来对某一个或某一对二进制位进行操作,其运算符有以下几个:其运算符
7、有以下几个:表示按位取反表示按位取反&表示按位与表示按位与 表示按位或表示按位或 表示按位异或表示按位异或 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算 除了是一元运算符外,除了是一元运算符外,&、 、都是二元运算符。都是二元运算符。位逻辑运算的运算对象是整数。位逻辑运算规则与逻辑运算位逻辑运算的运算对象是整数。位逻辑运算规则与逻辑运算(& 、!)一样,也可用真值表表示。设、!)一样,也可用真值表表示。设a、b分别表分别表示一个二进制位,则按位逻辑运算的真值表可表示成如表示一个二进制位,则按位逻辑运算的真值表可表示成如表9-1所示的形式。所示的形式。2
8、ba&ba baab000010010111100101111100表9-1 逻辑运算符的运算规则 C语言程序设计案例教程 大连理工大学出版社按位与运算按位与运算按位或运算按位或运算按位异或运算按位异或运算按位取反运算按位取反运算9.2 二进制位运算 9.2.1 位逻辑运算 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算 按位与逻辑运算的运算规则是:只有对应的位均为按位与逻辑运算的运算规则是:只有对应的位均为1时,与时,与运算的结果才为运算的结果才为1,其他的情况均为,其他的情况均为0。即:。即: 0&0=0 0&1=0 1&0=0 1&1=1【例例9.
9、2】令令a=10,b=8,c=a&b,求,求c的值。的值。 c的内容可以通过下式运算:的内容可以通过下式运算: 00001010 00001000 00001000按位与运算 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算/*源文件名:源文件名:Li9_2.c功能:令功能:令a=10,b=8,c=a&b,求,求c的值。的值。*/#include void main()int a=10,b=8;int c;c=a&b;printf(c=%dn,c); C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算按位与运算的用途有以
10、下几个方面:按位与运算的用途有以下几个方面:可以对某位进行清零操作。此时只需将需要清零的对应位与可以对某位进行清零操作。此时只需将需要清零的对应位与0位进行位进行“按位与按位与”操作即可。操作即可。例如:若将例如:若将00010011的低的低4位清零,只需将其低位清零,只需将其低4位与零位与零相与,高相与,高4位与位与1相与即可,也就是进行以下的操作:相与即可,也就是进行以下的操作: 00010011 11110000 00010000即将即将00010011与与11110000进行与操作就可以满足要求。进行与操作就可以满足要求。 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算
11、 9.2.1 位逻辑运算可以提取某些位。此时只需将需要提取的位与可以提取某些位。此时只需将需要提取的位与1进行进行“按位按位与与”操作即可。例如:保留操作即可。例如:保留1100011中的最高位,其余位清零,中的最高位,其余位清零,可用如下的操作:可用如下的操作: 11000110 10000000 10000000则上述与操作完成后,则上述与操作完成后,1100011就变成了就变成了10000000 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算按位或运算 按位或运算的运算规则是:只有按位或操作的对应位均为零时,按位或运算的运算规则是:只有按位或操作的
12、对应位均为零时,结果才为零,其他情况按位或的结果均为结果才为零,其他情况按位或的结果均为1。即,。即, 0|0=0 0|1=1 1|0=1 1|1=1 【例例9.3】令令a=12,b=9,c=a|b,求,求c的值。的值。 c的内容可以通过下式运算:的内容可以通过下式运算: 00001100 00001001 00001101 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算 /*源文件名:源文件名:Li9_3.c功能:令功能:令a=12,b=9,c=a|b,求,求c的值。的值。*/#include void main()int a=12,b=9;int c
13、;c=a|b;printf(c=%dn,c); C语言程序设计案例教程 大连理工大学出版社 按位或运算的用途主要是对某位进行置按位或运算的用途主要是对某位进行置1操作,例如:将操作,例如:将00100010的高四位置的高四位置1,可以将其与,可以将其与11110000进行进行“按位按位或或”运算。运算。具体如下:具体如下: 00100010 11110000 111100109.2 二进制位运算 9.2.1 位逻辑运算 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算按位异或运算 按位异或的运算规则是:参与按位异或运算的两个二进制位按位异或的运算规则是:参
14、与按位异或运算的两个二进制位如果相同,则结果为如果相同,则结果为0,如果不同则结果为,如果不同则结果为1。即,。即, 00=0 01=1 10=1 11=0 【例例9.4】令令a=10,b=8,c=ab,求,求c的值。的值。 c的内容可以通过下式运算:的内容可以通过下式运算: 00001010 00001000 00000010 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算 /*源文件名:源文件名:Li9_4.c功能:令功能:令a=10,b=8,c=ab,求,求c的值。的值。*/#include void main()int a=10,b=8;int
15、c;c=ab;printf(c=%dn,c); C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算按位异或运算主要有以下三个用途:按位异或运算主要有以下三个用途:与与0异或,可以保留原值。因为原数中的异或,可以保留原值。因为原数中的1与与0进行异或运进行异或运算得算得1,0与与0进行异或运算得进行异或运算得0。例如将。例如将035与与00按位异或按位异或可以保留可以保留035。 具体如下:具体如下: 00011101 00000000 00011101 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算将特定位翻转。例如:
16、将将特定位翻转。例如:将10001111的高四位进行翻转,即的高四位进行翻转,即1变成变成0、0变成变成1,则可以使用异或运算。具体如下:,则可以使用异或运算。具体如下:( ) 10001111 11110000 01111111 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算不用临时变量交换两个值。在以前的章节中介绍交换变量时,不用临时变量交换两个值。在以前的章节中介绍交换变量时,需要借助第三个临时变量来完成;而通过异或运算则不需要第需要借助第三个临时变量来完成;而通过异或运算则不需要第三个变量即可以完成交换两个值的操作。三个变量即可以完成交换两个值的
17、操作。 例如例如a=5,b=4,请用异或操作完成请用异或操作完成a=4,b=5。具体如下:。具体如下: b=ab=101100=001 a=ab=101001=100 b=ab=100001=101 经过上述操作后即可完成交换经过上述操作后即可完成交换a与与b的值的操作,即的值的操作,即 a=100=4,b=101=5。 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算按位取反运算的运算规则是:按位取反运算的运算规则是:0的按位取反结果为的按位取反结果为1,1的按的按位取反结果为位取反结果为0。即,。即, 0=1 1=0 【例例9.5】令令a=10, c=
18、a,求,求c的值。的值。 c的内容可以通过下式运算:的内容可以通过下式运算:() 00001010 11110101按位取反运算 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算 /*源文件名:源文件名:Li9_5.c功能:令功能:令a=10, c=a,求,求c的值。的值。*/#include void main()int a=10;int c;c=a;printf(c=%dn,c); C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.1 位逻辑运算位运算符的优先级是:位运算符的优先级是: 按位取反优先级最高,其次是按位与和按位异或,
19、最低按位取反优先级最高,其次是按位与和按位异或,最低的是按位或。位运算与其他运算符之间的运算优先级和结合性的是按位或。位运算与其他运算符之间的运算优先级和结合性参见附录中介绍。参见附录中介绍。 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算移位运算实现二进制位的顺序向左或向右移位。移位运算实现二进制位的顺序向左或向右移位。左移位运算左移位运算右移位运算右移位运算9.2.2 移位运算 C语言程序设计案例教程 大连理工大学出版社9.2 二进制位运算 9.2.2 移位运算左移位运算符是左移位运算符是,其语法格式为:,其语法格式为:an 其中,其中,a是操作数,可以是一个是操作数,可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件C语言程序设计案例教程第9章 位运算 教学 课件 语言程序设计 案例 教程 运算
限制150内