15第15章位运算第15章位运算

15第15章位运算第15章位运算

ID:37169894

大小:38.00 KB

页数:6页

时间:2019-05-21

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

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

1、第15章位运算主讲人:成江湖学长电话:13975026749QQ:16347548C语言中,位运算的对象只能是整型或字符型,不能是其他类型的数据。15.1位运算符运算符含义优先级~按位求反1(高)<<左移2>>右移2&按位与3^按位异或4

2、按位或5(低)说明:只有求反运算符(~)为单目运算符,其余均为双目运算符。各双目运算符与赋值运算符结合可以组成扩展的赋值运算符扩展运算符表达式等价的表达式<<=a=<<2a=a<<2>>=b=>>2b=b>>2&=a&=ba=a&b^=a^=ba=a^b

3、=a

4、=ba=a

5、b15.2

6、位运算符的运算功能1、“按位取反”运算运算功能:把运算对象的内容按位取反,即,使每一位上的0变1,1变0例如:~0115先把八进制115转换成二进制001001101,因为一个字节有八位,所以舍去一个前置0后为二进制为01001101求反后二进制为:10110010,最后转化为八进制为02622、“左移”运算左移时,右端(低位)补0;左端(高位)移出的部分舍弃例如:chara=6,b;b=a<<1;十进制a=6转化为二进制为:110,因为一个字节有八位,所以前面要补0,所以为00000110左移1位后为:0000110

7、0转换为十进制为12说明:1)左移时,若左端移出的部分不包含有效二进制1,则每左移一位,相当于移位对象乘以2.2)做位运算时,速度快,所以有时用左移代替乘法运算,以加快运算速度。3)如果左端移出的部分包含有效二进制数1,移位对象乘以2的特性就不适用了。例如:chara=64,b;b=a<<2;十进制a=64转化为二进制为:1000000,因为一个字节有八位,所以前面要补0,所以为01000000左移二位后为:00000000转换为十进制为0注意:a的值没有变3、“右移”运算右移时,右端(低位)移出的二进制数舍弃,左端(

8、高位)移入的二进制数分两种情况:对于无符号整数和正整数,高位补0,对于负整数,高位补1。这是因为负数在机器内均用补码表示所致。例如:shortinta=-8,b;b=a>>2;a=-8因为a为shortint型数据,用二个字节来存储,所以a的原码为1000000000001000,a的反码为1111111111110111,a的补码为:1111111111111000,右移二位后为1111111111111110转化为十进制为-2说明:1)右移时,若右端移出部分不包含有效数字1,则每右移一位相当于移位对象除以2。2)做

9、位运算时,速度快,所以有时用右移代替除法运算,以加快运算速度。3)如果右端移出的部分包含有效二进制数1,移位对象除以2的特性就不适用了。4、“按位与”运算运算符&的作用:把参加运算的两个运算数按对应的二进制位分别进行“与”运算,即两个相应的位都为1时,该位的结果为1,否则为0例如:12&1012:0000110010:00001010&:00001000转化为十进制为8说明:任何位上的二进制数,只要和0“与”,该位即被屏蔽(清零);和1“与”,该位保留原值不变。例如:Chara=0322转换为二进制为11010010若

10、要保留a的第五位,只要和00010000(020)这样的数做“与”运算即可5、“按位异或”运算“按位异或”运算的规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0;若数不同,则该位的结果为1。例如:00110011八进制06311000011八进制0303^11110000八进制0360说明:和1进行异或运算,则使某位的数进行翻转;和0进行异或运算,则使某位保持原数。chara=0152a的高四位不变,低四位取反000011110152:01101010017:00001111^:011001

11、01八进制:01456、“按位或”运算“按位或“运算规则:参加运算的两个运算数中,只要两个相应的二进制位中有一个为1,该位的运算结果即为1;只有当两个相应位的数都为0时,该位的运算结果才为0。0123:01010011014:00001100

12、:01011111八进制0137说明:“按位或“可以使一个数中的指定位上置成1,其它位不变,要置1与1做“或”运算,保持不变的与0做“或“运算即可例如:想使a的高四位不变,低四位置1我们只要与00001111(八进制为017)做“或运算即可“7、位数不同的运算之间的运算规则1)先

13、将两个运算数右端对齐2)再将位数短的一个运算数往高位扩充,即:无符号数和正整数左侧用0补全,负数左侧用1补全,然后对位数相等的这两个运算数进行位运算。

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

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

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