Java异或操作用于哪些问题
时间: 2023-08-02 16:14:46 浏览: 52
Java中异或操作符 ^ 可以用于以下问题:
1. 交换两个变量的值,例如:
```
int a = 10;
int b = 20;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a=" + a + ", b=" + b); // 输出 a=20, b=10
```
2. 判断两个数是否相等,例如:
```
int x = 10;
int y = 20;
boolean isEqual = (x ^ y) == 0;
System.out.println("x 和 y 是否相等?" + isEqual); // 输出 false
```
3. 将一个数的二进制位翻转,例如:
```
int n = 10; // 二进制表示为 1010
n = ~n; // 翻转后为 0101
System.out.println(n); // 输出 5
```
4. 用于加密和解密,例如:
```
int key = 0x3f; // 密钥
String message = "Hello, world!";
byte[] bytes = message.getBytes();
for (int i = 0; i < bytes.length; i++) {
bytes[i] = (byte) (bytes[i] ^ key);
}
String encryptedMessage = new String(bytes);
System.out.println("加密后的消息:" + encryptedMessage);
for (int i = 0; i < bytes.length; i++) {
bytes[i] = (byte) (bytes[i] ^ key);
}
String decryptedMessage = new String(bytes);
System.out.println("解密后的消息:" + decryptedMessage);
```