按位异或把a,b值互换输出
时间: 2023-07-28 12:19:41 浏览: 61
可以使用异或运算交换两个变量的值,代码如下:
```c
#include <stdio.h>
int main() {
int a = 5, b = 9;
printf("Before swapping: a = %d, b = %d\n", a, b);
a ^= b;
b ^= a;
a ^= b;
printf("After swapping: a = %d, b = %d\n", a, b);
return 0;
}
```
运行结果为:
```
Before swapping: a = 5, b = 9
After swapping: a = 9, b = 5
```
在这里,我们先打印出变量的原始值。然后,我们使用异或运算符将 a 和 b 的值互换。最后,我们再次打印变量的值,验证它们是否已经被正确交换了。
相关问题
代码生成(让a,b互换)
以下是Python代码实现a,b互换:
```
a = 5
b = 10
# 方法1:使用第三个变量
temp = a
a = b
b = temp
# 方法2:使用加减法
a = a + b
b = a - b
a = a - b
# 方法3:使用异或运算
a = a ^ b
b = a ^ b
a = a ^ b
print("a =", a)
print("b =", b)
```
输出结果:
```
a = 10
b = 5
```
注:以上三种方法均可实现a,b互换,具体方法选择视情况而定。
当a=10,b=15,在不用第三方变量的前提下,把a,b的值互换?
可以使用位运算的异或操作来实现a和b的值互换,即:
```java
int a = 10;
int b = 15;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a = " + a); // 输出:a = 15
System.out.println("b = " + b); // 输出:b = 10
```
运行以上代码,会得到互换后的结果:a = 15,b = 10。这是因为异或操作具有以下性质:
- a ^ a = 0(任何数与自身异或的结果为0)
- a ^ 0 = a(任何数与0异或的结果为它本身)
通过连续进行三次异或操作,可以实现两个变量的值互换,而不使用第三方变量。