& 和 | 和 ~

O(∩_∩)O~~浅理解,不足之处请多指正,谢谢。

1) & 

 & :二目运算符,把运算符两侧的数换成 二进制 再依次求与。

例如:a = 2,b = 3;

        c = a & b;  

相当于:0010

           0011

       c: 0010 = 2;

2) | 和 ||

| :二目运算符,对两个条件都判断。

例如: a = 2,b = 3;

if(a++|b++)

{

cout << "hello" << endl;

}

运算后 :a = 3,b = 4;   (a,b 都加一)

||:

if(a++||b++)

{

cout << “boy” << endl;

}

运算后 :a = 3,b = 3;  (a+1,b不加)

3)  ~

~:单目运算符,换成二进制,按位取反。

  a = 0010 = 2;

~a = 1101;

~a是负数,把二进制负数换成十进制方法是:按位取反,再加一。

则:

~a = 1101

     = 0010 + 1

     = 0011

     = -3;

原文地址:https://www.cnblogs.com/ldy-miss/p/5614176.html