首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 運算符完全手冊:優先級、位運算、移位運算與實戰技巧

     編輯:Java 綜合教學

Java 運算符完全手冊:優先級、位運算、移位運算與實戰技巧

運算符是表達式的基因。本文系統整理 Java 七大類運算符,重點講解位運算與移位運算的底層邏輯、負數補碼表示、加密應用與性能優化技巧。

一、運算符分類與優先級 (高→低)

  1. 後綴:expr++ expr--
  2. 一元:++expr --expr +expr -expr ~ !
  3. 算術:* / % → + -
  4. 移位:<< >> >>>
  5. 關係:< > <= >= instanceof
  6. 相等:== !=
  7. 位與:&
  8. 位異或:^
  9. 位或:|
  10. 邏輯與:&&
  11. 邏輯或:||
  12. 三元:? :
  13. 賦值:= += -= *= /= %= &= ^= |= <<= >>= >>>=

二、位運算符核心規則

運算符名稱規則應用
&位與 (AND)同為 1 結果 1,否則 0掩碼取位、判斷奇偶 (n & 1) == 1
|位或 (OR)同為 0 結果 0,否則 1置位、合併標誌位
^位異或 (XOR)相同 0,不同 1交換變量 a^=b^=a^=b、簡易加密、校驗和
~位非 (NOT)0↔1 翻轉取反、構建掩碼

三、負數補碼表示法

  • 最高位為符號位:0 正,1 負
  • 負數 -x = ~x + 1 (按位取反加一)
  • 規律:-x 的補碼等於 x-1 取反;x = ~(-x-1)

四、移位運算符深度解析

4.1 左移 <<

  • 規則:丟棄高位,低位補 0
  • 等價:x << n == x * 2^n (無溢出前提)
  • int 32 位,long 64 位,byte/short/char 自動提升為 int
  • 移位量對 32/64 取模:33 << 1 == 1

4.2 有符號右移 >>

  • 規則:符號位不變,高位補符號位 (正補 0,負補 1)
  • 等價:x >> n == x / 2^n (向下取整)

4.3 無符號右移 >>>

  • 規則:忽略符號,高位補 0
  • 無 <<>>,因左移無符號意義
  • 常用於無符號數值處理、哈希分佈均勻化

五、實戰技巧集錦

  • 快速乘除 2 的冪:n << 3 (×8)、n >> 2 (÷4)
  • 判斷 2 的冪:(n & (n-1)) == 0
  • 取模優化:n % 8 == n & 7 (除數為 2 的冪)
  • 交換兩數:a ^= b; b ^= a; a ^= b; (無臨時變量)
  • 權限掩碼:READ=1<<0, WRITE=1<<1, EXEC=1<<2 → perm & READ != 0
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved