位運算直接對二進制位操作,效率極高,常用於底層優化、權限掩碼、簡單加密。
<<:x << n 等價 x * 2^n,低位補 0。>>:x >> n 等價 x / 2^n (算術右移,保留符號位)。>>>:高位補 0,無符號除法。System.out.println(6 << 3); // 48 (6 * 8)
System.out.println(6 >> 3); // 0 (6 / 8 = 0)
對齊兩數二進制位逐位運算:
| 運算子 | 名稱 | 規則 | 範例 6 (110) & 3 (011) |
|---|---|---|---|
& | 與 (AND) | 同為 1 則 1 | 010 = 2 |
| | 或 (OR) | 有 1 則 1 | 111 = 7 |
^ | 異或 (XOR) | 相異為 1 | 101 = 5 |
System.out.println(6 & 3); // 2
System.out.println(6 | 3); // 7
System.out.println(6 ^ 3); // 5
public static String xorEncrypt(String data, char key) {
char[] chars = data.toCharArray();
for (int i = 0; i < chars.length; i++) chars[i] ^= key;
return new String(chars);
}
// 加密與解密同一方法:xorEncrypt(xorEncrypt(plain, key), key) == plain
public class VariableDemo {
public static void main(String[] args) {
System.out.println(6 << 3); // 48
System.out.println(6 >> 3); // 0
System.out.println(6 & 3); // 2
System.out.println(6 | 3); // 7
System.out.println(6 ^ 3); // 5
}
}