码迷,mamicode.com
首页 > 其他好文 > 详细

C中按位运算符简介

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

标签:c   int   a   res      不同的   

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

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

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中按位运算符简介

标签:c   int   a   res      不同的   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!