首页 > 其他 > 详细

C中按位运算符简介

时间:2014-05-13 08:34:23      阅读:377      评论:0      收藏:0      [点我收藏+]

六种常见按位运算符:按位与(&)、按位或(|)、按位异或(^)、按位非(~)、按位左移(<<)、按位右移(>>).

这些运算符都只能用于整数类型,~是一元运算符,其他都是二元运算符。

1、按位与(&):合并操作数的对应位,如果两个位都是1,结果为1;否则,结果为0.如:

x      00001101

y      00000110

x&y  00000100

2、按位或(|):对应位中的两位都是0,则结果为0;否则为1.

x      00001101

y      00000110

x|y   00001111

3、按位异或(^):如果对应位的两位是不同的,则结果为1,否则为0

x      00001101

y      00000110

x^y   00001011

4、按位非(~):翻转操作数的位,1变0,0变1.

x      00001101

~x    11110010

5、按位左移(<<):将操作数向左移动指定位数,右边补0.如

x          00001100

x<<3   01100000

6、按位右移(>>):将操作数向右移动指定位数,对于不带符号的数值,右移时会在左边补0.

unsigned int value =65372U;
unsigned int result=value >>2;

result结果为16343.

value             1111  1111 0101 1100

value >>2     0011  1111 1101  0111

对于带符号的的负值,其最左一位是1.则移动结果取决于系统。大多数情况下,符号位会扩散,即左边会补1.

int  value=-164;
int result=value>>2;

result结果为-41.

value            1111  1111  0101  1100

value>>2     1111  1111  1101  01111

从上面结果可以看出,左移一位表示乘以2,以此类推。右移一位表示除以2,以此类推。

 

 

C中按位运算符简介,布布扣,bubuko.com

C中按位运算符简介

原文:http://blog.csdn.net/u010142437/article/details/25615235

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!