C语言程序设计(第二版) 教学课件 ppt 作者 978-7-302-32355-6 kj-第11章位运算
29页1、第1页,第11章 位运算,本章概述 本章的学习目标 主要内容,第2页,本章概述,C语言有一个重要特点就是可以直接对二进制位进行操作,即位运算。 二进制位简称位(bit),其值为0或1。计算机真正执行的正是由0和1构成的机器指令,计算机内数据也是由二进制表示的。 数在计算机内均是以补码的形式存储的 。 本章介绍位运算和位段结构的有关知识。,第3页,本章的学习目标,本章教学目的:理解位运算的概念,掌握基本位运算运算符的使用,理解位段的概念。 本章教学重点:基本位运算运算符的使用 本章教学难点:位段的概念,第4页,主要内容,11.1 位运算符 11.2 位运算 11.3 位运算应用举例 11.4 位段结构,第5页,11.1 位运算符,第6页,11.2 位运算,取反运算“”是一个单目运算符,运算量在运算符之后,取反运算的功能是将一个数据中所有位都取其相反值,即1变0,0变1。 运算规则为: 1=0 0=1,例11.1 对于无符号的字符型数据 a=(18)10 =(00010010)2 , 则a等于(11101101)2 ,即(237)10 。 C程序如下:,11.2.1 按位取反运算,第7页,
2、# include int main() unsigned char a=18,b; b=a; printf(“a=%d”,b); return 0; 运行结果为: a= 237,注意以下程序与左面程序及运行结果的区别: # include int main() char a=18,b; b=a; printf(“a=%d”,b); return 0; 运行结果:-19,前一个程序结果很好理解,后一个因为a是带符号数据,因此a=(11101101)2的结果是一负数的补码,转换为原码时,第1位符号位不变,对剩余的部分先减1,再全部取反,因此得到的二进制原码为:10010011,即十进制的-19。,第8页,11.2 位运算,11.2.2 左移运算,左移运算“”是一个双目运算符,左移运算的功能是将一个数据所有位向左移若干位,左边(高位)移出的部分舍去,右边(低位)自动补零。,例11.2 对于无符号字符型数据 a=(18)10 =(00010010)2 , a 3的结果是(10010000)2 ,即(144)10 。 C程序如下:,第9页,# include int main() unsign
3、ed 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,因a3得到的(10010000)2, 是一负数的补码,转换为原码时,第1位符号位不变,对剩余的部分先减1,再全部取反,因此得到的二进制原码为:11110000,即十进制的-112。 对于无符号数来说,在左移的过程中如果没有高位的丢失,左移1位相当于乘2,左移2位相当于乘4。 左移运算速度较快,因此有些C编译系统自动将乘2的操作用左移1位来实现,将2n幂运算用左移n位来实现。,第10页,11.2 位运算,11.2.3 右移运算,右移运算“”是一个双目运算符,右移运算的功能是将一个数据所有位向右移若干位,右边(低位)移出的部分舍去,左边(高位)移入的二进制数分两种情况:对于无符号数和正整数,高位补0;对于负整数,高位补1(适用于turboc系统)。,例11.
4、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; 运行结果为: a3=2,第12页,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 对于有符号数a=(-83)10=(10101101)2 , b=(-53)10=(11001011)2 , 则a&b = (10001001)2 =(-119)10 。 以上二进制形式是负数的补码。C程序
《C语言程序设计(第二版) 教学课件 ppt 作者 978-7-302-32355-6 kj-第11章位运算》由会员E****分享,可在线阅读,更多相关《C语言程序设计(第二版) 教学课件 ppt 作者 978-7-302-32355-6 kj-第11章位运算》请在金锄头文库上搜索。
逍遥游复习 知识点整理
近现代法德关系史 高三展示课3稿
当代大学生人生信仰及追求的调查研究
长相思 纳兰性德-ppt课件
课件:危机意识 一
英语ppt演讲关于阿甘正传
发达国家基础教育改革的动向与趋势 修改版
中国民间美术 课件.ppt
生物质发电技术与系统 课程ppt 第1章 生物质发电技术现状及发展趋势 2学时 -----2016
现代信号处理思考题 含答案
执业药师继续教育 抑郁症的药物治疗 100分
小学生的成长档案模板不用修改 万能型
增订六版 现代汉语 上册 第二章文字 思考与练习答案
国家财政ppt课件
加拿大英语介绍
六年级统计图的选择课件
中学生成长档案ppt
中国现代文学史期末复习整理
lohi和hihilo训练对女子赛艇运动员运动能力影响的比较研究
风雨贾平凹阅读答案
2024-04-11 25页
2024-04-11 37页
2024-04-11 28页
2024-04-11 31页
2024-04-11 36页
2024-04-11 29页
2024-04-11 22页
2024-04-11 27页
2024-04-11 34页
2024-04-11 32页