[英]Why can I combine a bitwise operator with a math operator, like &+, in Java?
我今天早些時候寫了一些代碼,忘記了我正在編寫Java而不是Swift並且不小心輸入了&+
。 令人驚訝的是,我沒有得到任何錯誤,代碼編譯並運行良好。
我玩了一下,發現&+
, &-
, |+
, |-
, ^+
和^-
都編譯運行沒有錯誤。 在對數字進行操作時,它們看起來像第一個按位運算符:
1 &+ 2 == 1 & 2
3 |+ 4 == 3 | 4
7 ^+ 9 == 7 ^ 9
另一方面,似乎任何其他的按位運算符和數學運算符的組合,如+&
, &/
和^*
,都會產生編譯時錯誤。
為什么&+
, &-
, |+
, |-
, ^+
和^-
編譯運行沒有錯誤? 他們有一些我沒有看到的目的,還是只是一些編譯奇怪的東西?
+
代表Unary Plus Operator +
結果為正數。
-
表示Unary Minus Operator -
產生負數。
1 &+ 2
是1 & +2
3 |- 4
是3 | -4
3 | -4
7 ^+ 9
是7 ^ +9
請注意, *
和/
運算符不能以相同的方式使用( 1 &/ 2
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.