なぜ私はJavaで、&+のように、数学演算子とビット演算子を組み合わせることができますか?

Jojodmo:

私は今日、以前のいくつかのコードを書いて、私は、Javaの代わりに、スウィフトを書き込み、誤って入力したのを忘れました&+驚くべきことに、私はすべてのエラーを取得し、コードにコンパイルされ、RAN罰金ませんでした。

私は、少し周りを演奏し、それを発見した&+&-|+|-^+、および^-エラーなしすべてコンパイルして実行。それは数字に作用する最初のビット演算子のように、彼らはすべての行為のようになります。

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
  • 7 ^+ 9 あります 7 ^ +9

お知らせ*/同じように使用することはできません演算子(1 &/ 2)。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=200534&siteId=1