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

Java 位運算符全攻略:&、|、^、~ 核心邏輯與實戰技巧

     編輯:Java 相關知識

位運算符基礎認知

Java 提供四大位運算符直接操作二進制位:&(位與)、|(位或)、^(異或)、~(取反)。它們執行效率極高,是網絡編程、硬件控制、加密算法的基石。

關鍵前置知識

  • 數值表示:Java 代碼默認十進制,八進制以 0 開頭,十六進制以 0x 開頭
  • 負數存儲:採用補碼形式,正數原碼=反碼=補碼
  • 類型提升:所有整數位運算結果均為 int 類型

四大位運算符詳細解析

1. 位與 (&)

規則:對應位全為 1 結果才為 1,否則為 0

典型用途:屏蔽特定位(與 0 運算結果為 0)

int a = 4;   // 0100
int b = 10;  // 1010
a & b = 0  // 0000

2. 位或 (|)

規則:對應位有 1 結果即為 1

典型用途:設置特定位為 1(與 1 運算結果為 1)

int a = 4;    // 0100
int b = -10;  // ...0110 (補碼)
a | b = -10   // 保持負數特征位

3. 異或 (^)

規則:對應位相同為 0,不同為 1

典型用途:判斷位是否相同、無臨時變量交換數值

int a = 4;  // 0100
int b = 10; // 1010
a ^ b = 14  // 1110

4. 取反 (~)

規則:單目運算,0→1,1→0

典型用途:反轉所有位、配合掩碼使用

int a = 4;     // 0000...0100
~a = -5        // 1111...1011 (補碼表示)

實戰代碼模式

將任意數轉為正數

int m = n & 0x7FFFFFFF;  // 清除符號位

判斷倒數第 3 位是否為 1

boolean b = (n & 0x4) != 0;  // 0x4 = 0100

將倒數第 4 位置 1

int m = n | 0x8;  // 0x8 = 1000

底層原理與最佳實踐

位運算符直接映射 CPU 電路邏輯門(AND/OR/XOR/NOT),具有硬件級執行效率。實際開發中:

  • 優先用於標誌位組合、權限掩碼、哈希算法
  • 避免在業務邏輯中濫用,降低代碼可讀性
  • 結合十六進制常量(如 0xFF、0x7F)提升可讀性
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved