& :只有2個都為1,那么結果是1,否則為0;例如:1&1=1,1&0=0,0&0=0,0&1=0;
11 & 3 = 3
00001011 & 00000011 = 00000011 = 3
| :只要有一個是1,那么結果為1,否則為0;例如:1&1=1,1&0=1,0&0=0,0&1=1;
11 | 3 = 11
00001011 | 00000011 = 00001011 = 11
>> :向右位移,就是把尾數去掉位數,例如:153 >> 2,153的二進制是:10011001,屁股后面去掉 2 位 100110,100110 轉化成十進制就是 38,153 = 10011001,38 =100110,"01" 去掉了。
<< :向左位移,就是把開頭兩位數去掉,尾數加位數00,例如:
107 = 0110 1011 <<2 << 172 = 1010 1100
在計算機中由於是32位的
107 = 0000 0000 0000 0000 0000 0000 0110 1011 <<2 << 428 = 0000 0000 0000 0000 0000 0001 1010 1100
^ :兩個相同的數會變成0,反之是1,例如:1&1=0,1&0=1,0&0=0,0&1=1;
11^3 = 8
00001011 ^ 00000011 = 00001000 = 8
任何數異或 ^0 得到的值不變:
a^0 = a
任何數異或同一個數兩次得到的值不變:
a^b^b = a