/* * 不用临时变量,交换两个变量的值。 * --------------- * 使用异或位运算符:^ * --------------- */ #include <stdio.h>
void main() { // char a = 4; // char b = 35; int a = 4; int b = 35; printf("Before change:\n"); printf("a = %d,\tb = %d\n", a, b);
a = a ^ b; b = a ^ b; a = a ^ b; printf("After change:\n"); printf("a = %d,\tb = %d\n", a, b); }
|
关于'^'
(1)使特定的位翻转:即将特定的位与'1'相异或。
0110 0011
(^) 0000 1111
-----------------
0110 1100
前四位不变,后四位翻转。
(2)保留原值,与0相异或
0000 0110
(^) 0000 0000
------------------
0000 0110
(3)变量自身相异或,为0。
阅读(869) | 评论(0) | 转发(0) |