Andy Back-end Dev Engineer

算法与数据结构-异或运算


性质

  1. 异或运算的结构等于无进位相加: 10010, 01101异或结果为 11111

  2. 若a^b=c, 则a=b^c, c=a^b
  3. 异或运算满足交换律和结合律
  4. 0^n = n, n^n=0, 利用这个性质可以实现两数的交换
    a = a^b
    b = a^b
    a = a^b
    

    注意,进行上面算法的时候a和b必须是两个不同的空间,但是和值没关系,如 ```java // 满足要求 int a = 10; int b = 10;

// 若i != j,则不满足要求 // 这样运行回导致arr[i] = arr[j] = 0 arr[i] = arr[i] ^ arr[j] arr[j] = arr[i] ^ arr[j] arr[i] = arr[i] ^ arr[j] ```


上一篇 Spring-IoC

Comments

Content