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

  • 相关阅读:
    idea安装破解
    项目中邮件发送
    (转)四种复制文件的效率高低
    备份
    关于时间
    转 累加含小数点的数据:parseFloat、toFixed等
    转 Java将PDF转换成图片
    (转)JAVA实现SFTP实例
    获取浏览器参数
    js 中日期转换
  • 原文地址:https://www.cnblogs.com/hencins/p/14699266.html
Copyright © 2011-2022 走看看