现在的位置: 首页 > 综合 > 正文

位(bit)操作符

2012年08月08日 ⁄ 综合 ⁄ 共 950字 ⁄ 字号 评论关闭
按位与操作符(Bitwise-AND Operator):  &

按位与操作符 (&) 比较两个数的每个位,如果所有的位都是 1,结果为 1,否则结果为 0。
下列示例中, 位与操作符 (&) 比较整型nNumA和nNumB的位:
int nNumA=1, nNumB=3, nNumC; // nNumA为1:00000001,nNumB为3:00000011
nNumC = nNumA & nNumB;       // nNumC为1

按位或操作符(Bitwise-Inclusive-OR Operator):  |

按位或操作符 (|) 比较两个数的每个位,如果任一位是1,结果为 1,否则结果为 0。
int nNumA=9, nNumB=3, nNumC; // nNumA为9:00001001,nNumB为3:00000011
nNumC = nNumA | nNumB;       // nNumC为11:00001011

按位异或操作符(Bitwise-Exclusive-OR Operator):  ^

按位异或操作符 (|) 比较两个数的每个位,如果一个位是0而另一个位是1,结果为 1,否则结果为 0。
int nNumA=9, nNumB=3, nNumC; // nNumA为9:00001001,nNumB为3:00000011
nNumC = nNumA ^ nNumB;       // nNumC为10: 00001010

二进制取反操作符(One's Complement Operator):  ~
二进制取反操作符有时也被称为位余或位反操作符, 操作数必须是整数型,作用是将各个二进制位由1变0,由0变1。
unsigned short y = 0xAAAA;  // y为0xAAAA
y = ~y;                     // y为0x5555

按位左移和右移操作符(Bitwise Left Shift and Right Shift Operators):  <<, >>
移位运算符可以把整型变量中的内容向左或向右移动指定的位数,>>运算符把位向右移动,<<运算符把位向左移动,移出变量两端的位被舍弃。
int nNumA=8;    // 开始值是8

nNumA >> 2;     // 结束值是2

 

更为详细的解释参见:http://www.cnblogs.com/sunrack/articles/1245830.html

抱歉!评论已关闭.