异或特性

异或的两个特性

  1. 两个相等的数的异或为0;
  2. 任何一个数和0异或之后,还是这个数不变

应用

在 1 到 n 的数字中,有且只有唯一的一个数字 m 重复出现偶数次,其他数字都只出现一次,请用异或把这个数字找出来。

原始数据: 1,2...m,m,...n (是否有序对此题不重要)
所有数字: 1,2,...m,...n
因为 x^x = 0
令a = 1^2...^m...^n
b = 1^2...^m^m...^n
则有: a^b = (1^2...^m...^n)^(1^2...^m...^n)^m = 0^m = m

原文地址:https://www.cnblogs.com/linyihai/p/10381497.html