zoukankan      html  css  js  c++  java
  • XOR异或运算 查漏补缺

    XOR,exclusive OR。

    exclusive,专有的,更单纯的OR运算。

    运算定律:

    1. 一个值与自身的运算,总为0,x^x=0
    2. 一个值与0的运算,总是等于其本身,x^0=x
    3. 可交换性,xy=yx
    4. 结合性,x(yz)=(xy)z

    简化计算:abcab=c

    交换值:x=xy,y=xy,x=x^y。此乃两变量交换值之最快法,无需任何额外空间。

    加密,(xy)y=x:

    1. 明文text^密钥key=密文cipherText
    2. 密文cipherText^密钥=text

    数据备份,文件x文件y=备份文件z,只需x或y与z异或,即可还原另一个文件。xy=z,x^z=y。

    算法题:

    一个数组包含 n-1 个成员,这些成员是 1 到 n 之间的整数,且没有重复,请找出缺少的那个数字。

    最简单的方法:加1次减1次,1 + 2 + ... + n - A[0] - A[1] - ... - A[n-2]。但加法速度慢,如果数字较大还有溢出可能。

    异或法:A[0] ^ A[1] ^ ... ^ A[n-2] ^ 1 ^ 2 ^ ... ^ n,速度更快。

  • 相关阅读:
    08月24日总结
    08月23日总结
    08月22日总结
    装饰器
    卢菲菲最强大脑记忆训练法全套教程 01
    LeetCode 704 二分查找
    LeetCode 1480 一维数组的动态和
    NIO 总结
    LeetCode 881 救生艇
    url的组成部分
  • 原文地址:https://www.cnblogs.com/hencins/p/14699266.html
Copyright © 2011-2022 走看看