【java提高】(17)—Java 位運算符
- 2019 年 10 月 3 日
- 筆記
Java 位運算符 &、|、^、~、<<、>>
以前學過有關java的運算符,不過開發了這麼久也很少用過這個。現在由於開發需要,所以現在再來回顧整理下有關java的運算符。
主要運算符有以下:與(&)
、或(|)
、異或(^)
、取反(~)
、左移(<<)
、右移(>>)
。
一 與(&) 和 (|)
1、&(按位與)
規則
:將兩邊的數轉換為二進位位,然後運算最終值。運算規則即(兩個為真才為真
)1&1=1 , 1&0=0 , 0&1=0 , 0&0=0。
舉例
:
4&7 這個運算的結果是多少?
3&5 這個運算的結果是多少?
2、|(按位或)
規則
將兩邊的數轉換為二進位位,然後運算最終值。不同的是運算規則(一個為真即為真
)1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1
舉例
3|6 這個運算的結果是多少?
5|9 這個運算的結果是多少?
二、異或(^) 和 取反(~)
1、異或(^)
規則
異就是不同,其運算規則為1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0
舉例
3^6 這個運算的結果是多少?
5^9 這個運算的結果是多少?
2、取反(~)
規則
取反就是1為0,0為1。
舉例
~5 這個運算的結果是多少?
這個其實就是,就是把1變0,0變1。
注意
:二進位中,最高位是符號位 1表示負數,0表示正數。
~15 這個運算的結果是多少?
三、左移運算(<<) 和 右移運算(>>)
1、左移運算(<<)
規則
左移就是把所有位向左移動幾位。
舉例
6 << 2 這個運算的結果是多少?
9 << 2 這個運算的結果是多少?
公式
M << n 其實可以這麼算 M << n = M * 2^n
2、右移運算(>>)
規則
這個跟左移運算大體是一樣的,但是還是有點不同的,不同點在於對於正數和負數補位的時候補的不一樣,負數補1,正數補0
舉例
12 >> 2 這個運算的結果是多少?
-9 >> 2 這個運算的結果是多少?
從這裡就可以看出 正數右移補0,負數右移補1。
四、負數的進位表示
我們來思考下
1、負的十進位的轉二進位
對於十機制的負數,如何用二進位來表示:
思路三步曲
: 1、正數二進位 2、反碼 3、反碼+1
舉例
:
-1 如何轉換成二進位?
說明
-1在電腦里用二進位表達就是全1
2、負的二進位轉十進位
上面思路是負的十進位轉二進位,那麼同樣負的二進位轉10進位跟上面相反就可以了。
思路三步曲
1、負數的二進位碼 2、二進位碼-1 3、取反
舉例
1111 1101 如何轉換成十進位?
參考
3、Java基礎——十進位負數轉換為二進位、八進位、十六進位
我相信,無論今後的道路多麼坎坷,只要抓住今天,遲早會在奮鬥中嘗到人生的甘甜。抓住人生中的一分一秒,勝過虛度中的一月一年!(3)