表示式:(a + b) * c
a,b,c叫做運算元
+,*,叫做運算子
+ - * / %(求餘) ++ --
== != > < >= <=
運算子
描述&&
所謂邏輯與運算子。如果兩個運算元都非零,則條件變為真
||所謂的邏輯或操作。如果任何兩個運算元是非零,則條件變為真
!所謂邏輯非運算子。使用反轉運算元的邏輯狀態。如果條件為真,那麼邏輯非操後結果為假ab
a&ba|b
a^b000
0001
0111
1110
1001
1這裡最難理解的就是^了,只要認為ab兩者都相同的時候,為0,其他都為1
假設a為60,b為13
運算描述示例&
二進位制與操作副本位的結果,如果它存在於兩個運算元
(a & b) = 12, 也就是 0000 1100
|二進位制或操作副本,如果它存在乙個運算元
(a | b) = 61, 也就是 0011 1101
^二進位制異或操作副本,如果它被設定在乙個運算元就是按位取非
(a ^ b) = 49, 也就是 0011 0001
&^二進位制位清空&^
(a&^b)=48,也就是110000
<<
二進位制左移位運算子。左邊的運算元的值向左移動由右運算元指定的位數
a << 2 =240 也就是 1111 0000
>>
二進位制向右移位運算子。左邊的運算元的值由右運算元指定的位數向右移動
a >> 2 = 15 也就是 0000 1111
運算子描述示例=
簡單的賦值操作符,分配值從右邊的運算元左側的運算元
c = a + b 將分配a + b的值到c
+=相加並賦值運算子,它增加了右運算元左運算元和分配結果左運算元
c += a 相當於 c = c + a
-=減和賦值運算子,它減去右運算元從左側的運算元和分配結果左運算元
c -= a 相當於 c = c - a
*=乘法和賦值運算子,它乘以右邊的運算元與左運算元和分配結果左運算元
c *= a 相當於 c = c * a
/=除法賦值運算子,它把左運算元與右運算元和分配結果左運算元
c /= a 相當於 c = c / a
%=模量和賦值運算子,它需要使用兩個運算元的模量和分配結果左運算元
c %= a 相當於 c = c % a
<<=
左移位並賦值運算子
c <<= 2 相同於 c = c << 2
>>=
向右移位並賦值運算子
c >>= 2 相同於 c = c >> 2
&=按位與賦值運算子
c &= 2 相同於 c = c & 2
^=按位異或並賦值運算子
c ^= 2 相同於 c = c ^ 2
|=按位或並賦值運算子
c |= 2 相同於 c = c | 2
有些運算子擁有較高的優先順序,二元運算子的運算方向均是從左至右。下表列出了所有運算子以及它們的優先順序,由上至下代表優先順序由高到低:
優先順序運算子
7~ ! ++ --
6* / % << >> & &^
5+ - ^
4== != < <= >= >
3<-2&&
1||當然,你可以通過使用括號來臨時提公升某個表示式的整體運算優先順序。
Golang位運算子
位運算子是對資料轉換為二進位制後某個位上的數進行的運算,各個語言中都有位運算子,golang也不例外,由於位運算子的執行效率比較高,在實際開發過程中也都有使用,golang的位運算子相較於c c 貌似 少了 一種操作,這裡的少了並不是真正的少了,而是非這個操作不再使用單獨的位運算子。golang的位...
golang之運算子
1 賦值運算子 1 5 5種 2 算術運算子 5 2種 乘 除 餘 加 減 自增 自減,算術的二元操作中必須是相同的型別。1 取模運算子的符號和被取模數的符號總是一致的,因此 5 3和 5 3結果都是 2。2 除法運算子 的行為則依賴於運算元是否為全為整數,比如5.0 4.0的結果是1.25,但是5...
Java基礎語法(三) 運算子
1 四則運算加法 減法 乘法 取整 取餘 class demo1 2 自增 自減 後 後 後加加 後減減 先賦值,再運算 class demo1 3 自增 自減 前 前 前加加 前減減 先運算,再賦值 class demo1 注意 當後加加 後減減 和其他 在同一行的時候,先使用加加 減減 之前的值...