+:加法
- :減法
* :乘法
/ :除法
%:餘數
++: 自加。這個如果放在左邊,先自加1再運算;放右邊先運算再自加1。
-- :自減。同上。
比較簡單就不多說了,賦個貼圖看一下就好了。
&:位與。二進位制運算時當兩位同時為1時返回1;否則返回0。
| :位或。當兩位有一位為1時返回1。都不為1時返回0。
~ :位非。按位全部取反。
^: 位異或。當兩位相同時返回0;不通時返回1。
<
>>:右移
>>>:無符號右移,左側補0.
舉幾個例子,以int型別為例8byte32位:
a = 49:0000 0000 0000 0000 0000 0000 0011 0001
b = 15:0000 0000 0000 0000 0000 0000 0000 1111
c=5:0000 0000 0000 0000 0000 0000 0000 0101
d=-5:1111 1111 1111 1111 1111 1111 1111 1011
d>>>2 = 1073741822 : 0011 1111 1111 1111 1111 1111 1111 1110
a>>2:0000 0000 0000 0000 0000 0000 0000 1100
a<<2:0000 0000 0000 0000 0000 0000 1100 0100
a^b:0000 0000 0000 0000 0000 0000 0011 1110
~a:1111 1111 1111 1111 1111 1111 1100 1110
a|b=15: 0000 0000 0000 0000 0000 0000 0000 1111
a&b=1:0000 0000 0000 0000 0000 0000 0000 0001
這個地方比較混亂,如果有錯誤,還請指正。
>;>=;<=;
&&:邏輯與。前後必須都返回true,才能返回true。否則返回false。
&:邏輯不短路與。
||:邏輯或。前後只要有乙個返回true,就可以返回true。否則返回false。
|:邏輯不短路或。
!:邏輯非。true->false; false->true。
^:異或。兩個運算元不同時返回true。相同時返回false。
舉個例子:
x==null?"0":x.tostring();
包括++,--,~,!
今天其實本來沒想寫這個,但是今天看了一遍hashcode,直接看到map原始碼。map中應用了一些位運算子。所以還是要搞懂基礎的內容才方便看下去。所以今天先把這塊內容寫一下。方便後面理解。
Java基礎之位運算子
位運算子主要針對二進位制,它包括了 與 非 或 異或 1 與運算子 符號 其使用規律如下 如果不是二進位制數字要先轉換成二進位制再對兩個數進行比較。運算元中比較的位數如果兩個都為1,結果才為1,否則結果為0,案例 public static void main string args 2 或運算子 ...
java基礎之位運算子
處理整形型別時,可以直接對組成整型數值的各個位完成操作,這意味著可以使用掩碼技術得到整數中的各個位。位運算子包括 and or xor not 這些運算子按位模式處理。例如,如果n是乙個整數變數,而且用二進位制表示的n從右邊數第四位為1,則 int x n 0b1000 0b1000 會反回1,否則...
Java基礎複習之運算子
運算子 運算規則 範例結果 正號 33 加 2 35 連線字串 中 國 中國 負號 int a 3 a 3 減 3 12 乘 2 36 除 5 22 取模 5 21 自增 int a 1 a a 2 自減 int b 3 a a 2 注意 加法運算子在連線字串時要注意,只有直接與字串相加才會轉成字串...