位運算符
運算符 | 符號 | 含義 | 例子 |
---|---|---|---|
與 | & | 兩邊都爲真時爲真 | 1&1 =1 |
或 | | | 任何一邊爲真時爲真 | 1 |
~ | 非 | 取反 如果1則爲0 如果0爲1 | ~1 = 0 |
^ | 異或 | 兩邊相同爲1 兩邊不同爲0 | 1<>1返回false 1<>2返回true |
邏輯運算符
運算符 | 符號 | 含義 | 例子 |
---|---|---|---|
邏輯與 | && | 判斷兩邊 都爲真時爲真 | true&&true =true |
或 | || | 判斷兩邊 任何一邊爲真時爲真 | true |
計算
1000 1100 | |
---|---|
0011 1110 | |
^ | 00001101 |
& | 00001100 |
| | 10111110 |
進制轉十進制
10000001 = 1*2^0 +...+ 1*2^7=257
11111111 = 1*2^0+.....+1*2^7 = 128+64+32+16+8+4+2+1
有符號數的原碼、補碼、反碼的第一位是0表示正數,1表示負數
如果是無符號數,那就不表示符號,也作爲數據位
如果是移碼,第一位是0表示負數,是1表示正數
<<:左移運算符,num << 1,相當於num乘以2
>>:右移運算符,num >> 1,相當於num除以2
>>>:無符號右移,忽略符號位,空位都以0補齊
1.左移運算符
在二進制數運算中,在信息沒有因移動而丟失的情況下,每左移1位相當於乘2。如4 << 2,結果爲16。
2.右移運算符
與左移相反,對於小整數,每右移1位,相當於除以2。在右移時,需要注意符號位問題。對無符號數據,右移時,左端空出的位用0補充。對於帶符號的數據,如果移位前符號位爲0(正數),則左端也是用0補充;如果移位前符號位爲1(負數),則左端用0或用1補充,取決於計算機系統。對於負數右移,稱用0 補充的系統爲“邏輯右移”,用1補充的系統爲“算術右移”。