利用位操作符实现两个整数的交换

时间:2021-11-10 17:49:06

位操作符包括:&(按位与),|(按位或),^(按位异或),位操作符针对每个数的二进制位进行操作。

利用位操作符实现两个整数的交换,先来举例说明:

int a=5;

int b=8;

低四位二进制表示         a          0 1 0 1

                                      b         1 0 0 0

                                   a^b    -----------------

                                                 1 1 0 1


                                      b         1 0 0 0

                                  a^b^b  -----------------

                                                  0 1 0 1       (a)

         从例子中可以看出:    a^b^b=a;

所以通过(按位异或操作符)可以实现两个整数的交换

代码实现如下:

int main()
{
int i = 2;
int j = 3;
i = i^j;
j = i^j;
i = i^j;
printf("%d %d\n", i, j);
system("pause");
return 0;
}