欢迎来到天天文库
浏览记录
ID:50352691
大小:169.50 KB
页数:28页
时间:2020-03-08
《C语言程序设计教程(第二版)教学课件徐新华第11章 位运算.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章位运算为节省内存空间,在系统软件中常将多个标志状态位,简单地组合在一起,存储到1个字(节)中。为此,C语言提供了按二进制位进行运算的功能,将标志状态位从标志字节中分离出来。教学目的:掌握各种位运算主要用途和实现方法;了解数的原码、反码和补码(数在计算机中的表示)。9/18/20211教学内容:11.1数值在计算机中的表示11.2*位运算本章要点本章作业与上机实践9/18/2021211.1数值在计算机中的表示1、二进制位与字节1个字节由8个二进制位(bit)构成,每位的取值为0/1。自右→左,从0开始,依次编号,如下图所示:01234567最低位最高位9/18/202132、数值的原
2、码表示将最高位用作符号位(0-正数,1-负数),其余各位代表数值本身的绝对值(以二进制形式表示)的表示形式。为简化描述起见,本节约定用1个字节表示1个整数。例如,+9的原码是00001001-9的原码是10001001。表示正数表示负数9/18/202143、数值的反码表示(1)正数的反码:与原码相同。例如,+9的反码是00001001。(2)负数的反码:符号位为1;其余各位,为该数绝对值的原码,按位取反(1变0、0变1)。例如,-9的反码:①符号位:1②其余7位:
3、-9
4、的原码=0001001按位取反=1110110③-9的反码=111101109/18/202154、数值的补码表示(1)
5、正数的补码:与原码相同。(2)负数的补码:符号位为1;其余位为该数绝对值的原码,按位取反,再加1。例如,求-9的补码:①符号位:1②其余7位:
6、-9
7、的原码=0001001按位取反=1110110再加1=1110111③-9的补码=111101119/18/202165、数值在计算机中的表示──补码在计算机系统中,数值一律用补码表示(存储):(1)使用补码,可以将符号位和其它位统一处理;(2)减法也可按加法来处理。[返回]9/18/2021711.2*位运算11.2.1按位与(&)11.2.2按位或(
8、)11.2.3按位异或(^)11.2.4按位取反(~)11.2.5位左移(<<)11.2.
9、6位右移(>>)11.2.7说明11.2.8应用举例[返回]9/18/2021811.2.1按位与(&)1.格式:x&y2.规则:对应位均为1时,才为1;否则为0。例如,3&9=1:0011&1001=00013.主要用途:保持1个数的某(些)位不变,其余各位置0。9/18/202194.实现方法(1)构造1个整数:保持不变的位为1,其余为0。(2)进行按位与操作。例如,保持9的最低位不变,其余各位置0:●构造1个整数00000001=1●9&1=00000001。思考:如何保留整数x的最低2位,其余各位置0?[返回]9/18/20211011.2.2按位或(
10、)1.格式:x
11、y2.规则:对
12、应位均为0时才为0,否则为1。例如,3
13、9=11:0011
14、1001=1011(11)3.主要用途:将1个数的某(些)位置1,其余各位不变。9/18/2021114.实现方法(1)构造1个整数:置1的位上为1,其余位均为0。(2)进行按位或操作。例如,将8的最低位置1,其余各位不变:●构造整数00000001=1●8
15、1=00001001思考:如何将整数x的最低2位置1,其余各位不变?[返回]9/18/20211211.2.3按位异或(^)1.格式:x^y2.规则:对应位相同时为0,不同时为1。例如,3^9=10:0011^1001=1010(10)3.主要用途:使1个数的某(些)位翻转,其
16、余各位不变。1→0,0→19/18/2021134.实现方法(1)构造1个整数:要翻转的位上为1,其余均为0。(2)进行按位异或操作。例如,使9的最低2位翻转,其余各位不变:●构造整数00000011=3●9^3=00001010。思考:如何使整数x的最低2位翻转,其余各位不变?[返回]9/18/20211411.2.4按位取反(~)1.格式:~x2.规则:各位翻转。例如,在IBM-PC机中,~0=0xffff,~9=0xfff6。3.主要用途:间接地构造一个全1的数(~0)。无论16/32位计算机,0的表达都是0。9/18/202115例如,直接构造一个全1的数:●在IBM-PC等16位机
17、中为0xffff(2字节);●在VAX-11/780等32位机中,却是0xffffffff(4字节)。如果用~0来构造,系统可以自动适应。[返回]9/18/20211611.2.5位左移(<<)1.格式:x<<位数2.规则:使操作数的各位左移,移出的高位(包括符号位)舍弃,低位补0。例如,5<<2:0000010100010100=2036<<10:0000,0000,0010,01001001,0000,0
此文档下载收益归作者所有