郑州十大网站建设公司,网页美工设计哪家好,外贸网上推广,北京官网建设哪家好异或运算#xff1a;^
两个变量之间异或运算时#xff0c;其二进制位相同取0#xff0c;不同取1.
示例#xff1a;a10 (0b 0000 1010) b3 (0b 0000 0011) a^b9(0b 0000 1001)
据此可以推算异或运算^有以下特性#xff1a;
a^a0 (0b 0000 0000)…异或运算^
两个变量之间异或运算时其二进制位相同取0不同取1.
示例a10 (0b 0000 1010) b3 (0b 0000 0011) a^b9(0b 0000 1001)
据此可以推算异或运算^有以下特性
a^a0 (0b 0000 0000)相同变量异或运算0
a^0x0010(0b 0000 1010)跟0位异或运算即不变
a^0x0f5 (0b 0000 0101)跟1位异或运算即按位翻转此为^运算主要功能
进一步延伸,异或运算符可用于数据交换
aa^b10^3(0b 0000 1010)^(0b 0000 0011)(0b 0000 1001)
bb^a (0b 0000 0011)^(0b 0000 1001)(0b 0000 1010)
aa^b (0b 0000 1001)^(0b 0000 1010)(0b 0000 0011)
用这个方式写冒泡排序
#include stdio.hint main(){int arr[]{21,12,11,10,70,21};int lensizeof(arr)/sizeof(int); for(int ilen-1;i0;i--){for(int k0;ki;k){if(arr[k]arr[k1]){arr[k]arr[k]^arr[k1];arr[k1]arr[k1]^arr[k];arr[k]arr[k]^arr[k1];}}}for(int j0;jlen;j){printf(arr[%d]%d\n,j,arr[j]);}return 0;
}