6:异或运算

6:异或运算

 

异或运算:相同为0,不同为1

同或运算:相同为1,不同为0

So,异或运算记成无进位相加

 

int a = 7;     Binary            00111

int b= 13;                         01101

a^b = ?                            01010 = 10

 

性质:

  1) 0^N = N

       2) N^N= 0

      3)满足交换律和结合律    a^b = b^a;(a^b)^c = a^(b^c)

  int a = 12;

  int b = 1;

  只有a和b指向的是内存中的两块不同的内存区域,才能这样玩。

  a= a^b;

  b=a^b;

  a=a^b;     

       此时,a与b的值做了交换

复制代码
0  i == j时,不可以
1
public static void swap(int[] arr, int i, int j) { 2 arr[i] = arr[i] ^ arr[j]; 3 arr[j] = arr[i] ^ arr[j]; 4 arr[i] = arr[i] ^ arr[j]; 5 }
复制代码

 

 

posted @   yzmarcus  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示