欢迎来到天天文库
浏览记录
ID:50043840
大小:63.50 KB
页数:13页
时间:2020-03-08
《C语言程序设计 第2版 教学课件 作者 李敏第9章 位运算.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章位运算C语言程序设计19.1位运算和位运算符9.2位运算举例9.3位段本章主要内容2021/7/2129.1位运算和位运算符所谓位运算是指进行二进制位的运算。C语言提供了六种位运算符:&按位与
2、按位或^按位异或~按位反<<左移>>右移以上运算符除了“~”为单目运算符外,其余均为双目运算符。另外,运算对象只能是整型或字符型数据,不能是实型数据。2021/7/2139.1位运算和位运算符1.按位与运算“&”按位与运算符“&”是让参与运算的两个数对应的二进位分别相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。即:0&0=00&1=01&0=01&1=1。按位与运
3、算通常用来对某些位清零(任何位上的二进数只要和0与,该位即被屏蔽)或保留某些位(和1与时,该位原值不变)。2021/7/2149.1位运算和位运算符2.按位或运算“
4、”按位或运算符的功能是参与运算的两个数对应的二进位相或。只要对应的二个二进位有一个为1,结果位就为1;只有当两个对应位的数都为0时,该位的运算结果才为0。即:0
5、0=00
6、1=11
7、0=11
8、1=1。2021/7/2159.1位运算和位运算符3.按位异或运算“^”按位异或运算的功能是参与运算的两数各对应的二进位相异或。当两个对应的二进位相异时,结果为1,两个对应的二进位相同时,结果为0。即:0^0=0;0^1=
9、1;1^0=1;1^1=0。按位异或运算的主要应用:1)使特定位翻转2)与0按位异或,保留原值3)交换两个值,不需要临时变量2021/7/2169.1位运算和位运算符4.按位取反运算“~”按位取反运算符为单目运算符,运算对象就置于运算符的右边,具有右结合性。其功能是把运算对象的内容按位取反,即将1变0,将0变1。5.左移运算“<<”左移运算用来把“<<”左边的运算数的各二进位全部左移若干位,移动的位数由“<<”右边的数指定。左移时,高位移出的部分舍弃,低位补0。2021/7/2179.1位运算和位运算符6.右移运算“>>”右移运算用来把“>>”左边的运算数的各二进位全部右移
10、若干位,移动的位数由“>>”右边的数字指定。右移时,低位移出的二进制数舍弃,左端移入的二进制数分两种情况:对于无符号整数和正整数,高位补0;对于负整数,高位补1,这是因为负数在机器内均用补码表示的原因2021/7/2189.1位运算和位运算符7.位运算与赋值运算位运算符与赋值运算符可以组成复合赋值运算符,如:&=,
11、=,>>=,<<=,^=例如:a
12、=b相当于a=a
13、b,a>>=b相当于a=a>>b。返回2021/7/219【例9.3】编写程序,完成整数a与7按位异或运算。【例9.4】输出一个整数从右端开始的4~7位。【例9.5】输入一个正整数a,要求按二进制位输出该数。9
14、.2位运算举例返回2021/7/21109.3位段C语言允许在一个结构体中以位为单位来指定其成员所占内存长度,这种以位为单位的成员,称为“位段”或“位域”。定义位段的一般形式:其中“位段列表”的形式为:struct位段结构名{位段列表};类型说明符位段名:位段长度2021/7/21119.3位段例如:structbs{unsigneda:3;unsignedb:2;unsignedc:2;};位段变量的说明与结构变量说明的方式相同。可采用先定义后说明,同时定义说明或者直接说明这三种方式。2021/7/21129.4实训一、实训目的掌握位运算符的基本概念。掌握位运算的运算规则
15、。重点掌握位逻辑运算符的功能。掌握位数不同的运算数之间的运算规则。二、实训内容:请见教材要求。2021/7/2113
此文档下载收益归作者所有