第15章c 位运算

第15章c 位运算

ID:42371470

大小:76.00 KB

页数:11页

时间:2019-09-13

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

《第15章c 位运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第15章位运算琴岛学院计算机工程系回顾数值的表示原码反码补码数值在计算机中存储或运算时用补码位运算---位运算对象只能是整型或字符型数据运算符:~、<<、>>、&、^、

2、~&^

3、<<>>位逻辑运算符移位运算符单目位运算符的运算对象只能是整型数据或字符型数据,不能是实型数据运算对象一律按二进制补码参加运算,并按位进行运算位运算的结果是一个整型数据低于单目、算术运算符,高于其他运算符低于单目、算术和关系运算符,高于其他运算符(1)格式:~x(2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1。~01001101——————————结果:101100101、按位取反——~注:本书中均以sh

4、ort或char型数据为例2.按位左移──<<(1)格式:x<<位数(2)规则:使操作数的各位左移,低位补0,高位溢出例如:5<<2=2000000101—>00010100(3)说明:左移n位,相当于该数乘以2的n次幂,可以代替乘法加快运算速度。但此结论只适用于该数左移时舍弃的高位中不包含1的情况.例如:a=65;b=a<<2;b的值是多少?a:01000001b:00000100b=43.按位右移──>>(1)格式:x>>位数(2)规则:使操作数的各位右移,移出的低位舍弃;高位:(1)对无符号数和正整数补0;(2)对负整数补1。说明:参与运算时,操作数x和y,都必须首先转换成二进制形式,然

5、后再执行相应的按位运算。例如:shortintb=-10,a;a=b>>4a=?b在计算机中的二进制形式:1111111111110110右移4位后→1111111111111111移位运算举例a+8>>b-1等价于(a+8)>>(b-1)例如:假设a=10,b=2,求a<>b-1main(){inta=10,b=2;printf("%d%d",a<>b-1);}输出结果:409请自行分析运行结果4.按位与——&格式:x&y规则:任何位和1与不变,和0与清零例如3&9=1:0011&1001────00013.主要用途:取(或保留)1个数的某(些)位,其余各位置

6、0。5.按位异或——^(1)格式:x^y如:3^9=10。(2)规则:对应位相同时为0,不同时为1:和1异或翻转,和0异或不翻转(3)主要用途:使1个数的某(些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变。6.按位或——

7、(1)格式:x

8、y(2)规则:对应位均为0时为0,否则为1:任何位和1或置1,和0或不变例如,3

9、9=110011

10、1001────1011=11(3)主要用途:将1个数的某(些)位置1,其余各位不变。程序举例:main(){shorta=10,b=010;printf("%d%d",a&b,a

11、b);printf("%d%d",a^b,~a);}输出

12、结果:8102-110000000000001010&00000000000010000000000000001000即:a&b的值是80000000000001010˜1111111111110101即:˜a的值是-11

13、00000000000010000000000000001010a

14、b的值是100000000000001010^00000000000010000000000000000010即:a^b的值是2

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

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

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