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,速度更快。

  • 相关阅读:
    objc之method&class attributes
    iOS之Export UIAutomation script
    js's forin vs oc's forin
    iOS新加速计事件
    Mac之Font管理
    iOS之VoiceOver
    OC之initialize
    C++常见问题
    objc新老runtime接口类型对比
    dlopen之mode参数详解
  • 原文地址:https://www.cnblogs.com/hencins/p/14699266.html
Copyright © 2011-2022 走看看