kj-第11章位运算课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《kj-第11章位运算课件.ppt》由会员分享,可在线阅读,更多相关《kj-第11章位运算课件.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1页第第11章章 位运算位运算 本章概述 本章的学习目标主要内容第2页本章概述本章概述lC语言有一个重要特点就是可以直接对二进制位语言有一个重要特点就是可以直接对二进制位进行操作,即位运算。进行操作,即位运算。l二进制位简称位(二进制位简称位(bit),其值为),其值为0或或1。计算机真。计算机真正执行的正是由正执行的正是由0和和1构成的机器指令,计算机内构成的机器指令,计算机内数据也是由二进制表示的。数据也是由二进制表示的。 l数在计算机内均是以补码的形式存储的数在计算机内均是以补码的形式存储的 。l本章介绍位运算和位段结构的有关知识。本章介绍位运算和位段结构的有关知识。第3页本章的学习目
2、标本章的学习目标l本章教学目的:理解位运算的概念,本章教学目的:理解位运算的概念,掌握基本位运算运算符的使用,理解掌握基本位运算运算符的使用,理解位段的概念。位段的概念。l本章教学重点:基本位运算运算符的本章教学重点:基本位运算运算符的使用使用l本章教学难点:位段的概念本章教学难点:位段的概念第4页主要内容主要内容11.1 位运算符位运算符 11.2 位运算位运算 11.3 位运算应用举例位运算应用举例 11.4 位段结构位段结构 第5页11.1 位运算符位运算符位运算符位运算符功能功能举例举例按位取反按位取反a:对变量:对变量a的全部位取反的全部位取反左移左移 a右移右移 a2:将变量:将变
3、量a的各位全部右移的各位全部右移2位,对于位,对于无符号数和正整数,高位补无符号数和正整数,高位补0;对于负整数,;对于负整数,高位补高位补1(适用于(适用于turboc系统)系统)&按位与按位与 a&b:对:对a与与b的各对应位进行的各对应位进行“按位与按位与”运算运算|按位或按位或 a|b:对:对a与与b的各对应位进行的各对应位进行“按位或按位或”运算运算按位异或按位异或 ab:对:对a与与b的各对应位进行的各对应位进行“按位异或按位异或”运运算算第6页11.2 11.2 位运算位运算 取反运算取反运算“”是一个单目运算符,运算量在运算是一个单目运算符,运算量在运算符之后,取反运算的功能是
4、将一个数据中所有位都取符之后,取反运算的功能是将一个数据中所有位都取其相反值,即其相反值,即1变变0,0变变1。 运算规则为:运算规则为: 1=0 0=1例例11.1 对于无符号的字符型数据对于无符号的字符型数据a=(18)10 =(00010010)2 ,则则a等于等于(11101101)2 ,即,即(237)10C程序如下:程序如下:11.2.1 按位取反运算按位取反运算第7页# include int main() unsigned char a=18,b; b=a; printf(“a=%d”,b); return 0; 运行结果为:运行结果为: a= 237 注意以下程序与左面程序及
5、注意以下程序与左面程序及运行结果的区别:运行结果的区别: # include int main() char a=18,b; b=a; printf(“a=%d”,b); return 0;运行结果:运行结果:-19 前一个程序结果很好理解,后一个因为前一个程序结果很好理解,后一个因为a是带符号数据,因是带符号数据,因此此a=(11101101)2的结果是一负数的补码,转换为原码时,第的结果是一负数的补码,转换为原码时,第1位位符号位不变,对剩余的部分先减符号位不变,对剩余的部分先减1,再全部取反,因此得到的二,再全部取反,因此得到的二进制原码为:进制原码为:10010011,即十进制的,即十
6、进制的-19。 第8页11.2 11.2 位运算位运算11.2.2 左移运算左移运算 左移运算左移运算“”是一个双目运算符,左移运算的是一个双目运算符,左移运算的功能是将一个数据所有位向左移若干位,左边(高位)功能是将一个数据所有位向左移若干位,左边(高位)移出的部分舍去,右边(低位)自动补零。移出的部分舍去,右边(低位)自动补零。 例例11.2 对于无符号字符型数据对于无符号字符型数据 a=(18)10 =(00010010)2 , a 3的结果是的结果是(10010000)2 ,即(,即(144)10第9页C程序如下:程序如下: # include int main() unsigned
7、char a=18, b; b=a3; printf(“a3=%d”,b); 运行结果为:运行结果为: a3=144注意以下程序与左面程序的区别:注意以下程序与左面程序的区别: # include int main()char a=18,b; b=a3; printf(“a3=%d”,b); return 0; 运行结果为:运行结果为: a3=-112 原因同前,对于带符号数原因同前,对于带符号数a,因,因a”是一个双目运算符,右移运算的功能是一个双目运算符,右移运算的功能是将一个数据所有位向右移若干位,右边(低位)移出的是将一个数据所有位向右移若干位,右边(低位)移出的部分舍去,左边(高位)
8、移入的二进制数分两种情况:对部分舍去,左边(高位)移入的二进制数分两种情况:对于无符号数和正整数,高位补于无符号数和正整数,高位补0;对于负整数,高位补;对于负整数,高位补1(适用于适用于turboc系统系统)。)。 例例11.3 对于无符号字符型数据对于无符号字符型数据 a=(18)10 =(00010010)2 , 则则 a 3的结果是的结果是(00000010)2,即(,即(2)10第11页C程序:程序: # include int main() unsigned char a=18, b; b=a3; printf(“a3=%d”,b); return 0;运行结果为:运行结果为: a
9、3=2第12页11.2 11.2 位运算位运算11.2.4 按位与运算按位与运算 按位按位“与与”运算符要求有两个运算量,其功能是将两个运算符要求有两个运算量,其功能是将两个运算量的各个相应位分别进行运算量的各个相应位分别进行“与与”运算。运算。 运算规则为运算规则为: 1&1=1 0&1=0 1&0=0 0&0=0 例例11.4 对于无符号数对于无符号数a=(173)10=(10101101)2, b=(203)10=(11001011)2, 则则a&b = (10001001)2 =(137)10 10101101& 11001011 10001001第13页例例11.5 对于有符号数对于
10、有符号数a=(-83)10=(10101101)2 , b=(-53)10=(11001011)2 , 则则a&b = (10001001)2 =(-119)10 。以上二进制形式是负数的补码。以上二进制形式是负数的补码。C程序如右上所示。程序如右上所示。C程序:程序: # include int main() unsigned char a=173,b=203,c; c=a&b; printf(“a&b=%d”,c); return 0;运行结果为:运行结果为: a&b=137 10101101& 11001011 10001001C程序:程序:# include int main() ch
11、ar a=-83,b=-53,c; c=a&b; printf(“a&b=%d”,c); return 0;运行结果为:运行结果为: a&b=-119第14页11.2 11.2 位运算位运算11.2.5 按位或运算按位或运算 按位按位“或或”运算符要求有两个运算量,其功能是将运算符要求有两个运算量,其功能是将两个运算量的各个相应位分别进行两个运算量的各个相应位分别进行“或或”运算。运算。 运算规则为运算规则为: 1|1=1 0|1=1 1|0=1 0&0=0例例11.6 对于无符号数对于无符号数a=(173)10=(10101101)2,b=(203)10=(11001011)2,则,则a|b
12、 = (11101111)2 =(239)10 10101101| 11001011 11101111第15页 例例11.7 对于有符号数对于有符号数 a=(-83)10=(10101101)2, b=(-53)10=(11001011)2, 则则a|b = (11101111)2 =(-17)10C程序: # include int main() unsigned char a=173,b=203,c; c=a|b; printf(“a|b=%d”,c); return 0; 运行结果:运行结果: a|b=239 10101101| 11001011 11101111第16页C程序: # i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- kj 11 运算 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内