第章___位运算

第章___位运算

ID:39343331

大小:155.00 KB

页数:20页

时间:2019-07-01

第章___位运算_第1页
第章___位运算_第2页
第章___位运算_第3页
第章___位运算_第4页
第章___位运算_第5页
资源描述:

《第章___位运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本章的教学目标掌握数值在计算机中表示用源码、反码、补码;掌握如何求数值的源码、反码、补码;掌握位运算及其运算符、位与、位或、异或、取反、左移、右移;熟悉位段的概念;第11章位运算本章的教学重点:位运算符和位的逻辑运算;位的复合运算;位段的概念与运用;本章的教学难点:对位段的理解;重难点数值在计算机中的表示1.位(bit):是指二进制中的位,它是计算机能 处理的最小单位。2.字节(byte):是计算机处理的基本单位。计算 机的内存是按字节进行分配的。一个字 节有八位二进制数组成。所以我们在C语 言中

2、数据类型都是以字节为基本单元。3.补码:一个正数的补码是其本身;一个负数的 补码是其绝对值按位取反后加1。计算 机是以补码的形式存放数的。例如:-7的补码是11111001位的运算符一、位运算的概念位运算:以二进制位为单位的运算。二、位运算符“位运算”仅限于整数(整型数和字符型)。位逻辑运算符(~、&、^、

3、)位移位运算符(<<、>>)位复合赋值运算符(&=、

4、=、^=、<<=、>>=)位逻辑运算符~(按位求反)、&(按位与)、^(按位异或)、

5、(按位或)运算规则:~1=0~0=10&0=00&1

6、=01&0=01&1=10^0=00^1=11^0=11^1=00

7、0=00

8、1=11

9、0=11

10、1=1例如:main(){unsignedchara,b;a=0x9d;b=0xa5;printf(“~a:%x”,~a);printf(“a&b:%x”,a&b);printf(“a

11、b:%x”,a

12、b);printf(“a^b:%x”,a^b);}输出结果:~a:a&b:a

13、b:a^b:6285bd38位运算及其运算符1、按位与──&(1)格式:x&y(2)规则:对应位均为1时才为

14、1,否则为0:3&9=1。例如,3&9=1:0011&1001────0001=1(3)主要用途:取(或保留)1个数的某(些)位,其余各位置0。2、按位或──

15、(1)格式:x

16、y(2)规则:对应位均为0时才为0,否则为1:3

17、9=11。例如,3

18、9=11:0011

19、1001────1011=11 (3)主要用途:将1个数的某(些)位置1,其余各位不变。位运算及其运算符3、按位异或──^(1)格式:x^y(2)规则:对应位相同时为0,不同时为1:3^9=10。(3)主要用途:使1个数的某(些)位翻转

20、(即原来为1的位变为0,为0的变为1),其余各位不变。4、按位取反──~(1)格式:~x(2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6。(3)主要用途:间接地构造一个数,以增强程序的可移植性。5、按位左移──<<(1)格式:x<<位数(2)规则:使操作数的各位左移,低位补0,高位溢出:5<<2=20位运算及其运算符6、按位右移──>>(1)格式:x>>位数(2)规则:使操作数的各位右移,移出的低位舍弃;高位:1)对无符号数

21、和有符号中的正数,补0;2)有符号数中的负数,取决于所使用的系统:补0的称为“逻辑右移”,补1的称为“算术右移”。例如,20>>2=5。说明:(1)x、y和“位数”等操作数,都只能是整型或字符型数据。除按位取反为单目运算符外,其余均为双目运算符。(2)参与运算时,操作数x和y,都必须首先转换成二进制形式,然后再执行相应的按位运算。例如,5<<2=20:0101→10100,20>>2=5:10100→00101。例如:unsigneda=3;a<<2的十进制值是:a>>1的十进制值是:121说明1

22、、复合赋值运算符除按位取反运算外,其余5个位运算符均可与赋值运算符一起,构成复合赋值运算符:&=、

23、+、^=、<<=、>>=例如:a&=b相当于a=a&ba<<2相当于a=a<<2(1)位运算符中按位取反运算符的优先级最高,它比算术运算符,关系运算符,逻辑运算符和其他位运算符都高。(2)位运算符与赋值运算符相结合可以组成复合的赋值运算符。例如:&=<<=>>=^=(3)如果两个类型长度不同的数进行位运算,则需要进行补位。如a&b,b为int型,a为long型。系统将二者右端对齐并对较短的数b进行左

24、补位,如果b为正数,则左侧16位补满0,如b为负数,左端应补满1;如果b为无符号整型数,则左侧补满0。总结位运算符:【提出问题】设计一个函数,给出一个数的原码,得到该数的补码。分析:根据补码的定义,一个正数的补码等于该数的原码,一个负数的补码等于该数的反码加1。假设a为16位整数,则步骤为:(1)判别给定整数是正数还是负数。方法是:z=a&0x8000;若z等于0,则a为正数;若为非0,则a为负数。(2)如果z非0,有z=~a+1+0x80000;否则z=a。(3)返回z。程序如下

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。