• xor异或逻辑运算


    简略记忆:同0异1

    1.由于0^0=0 0^1=1 所以,0^任何数 = 任何数
    2.由于1^0=1 1^1 =0所以,1^任何数 = 任何数取反
    3.任何数^任何数 = 0;
    4.用于将特定的位反转,如对10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。原因见(2)
    5.通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。
    例如 a= 10100001 
    b= 00000111
    a=a^b; //a=10100110
      //此步操作是将a b原值的相同位记录为0,不同位记录为1.
      //并保存在a中,b值此步并没有发生变化
      //由于1^任何数 = 任何数取反 0^任何数 = 任何数
    b=b^a; //b=10100001
      //a中用1表示原值中对应位不同的部分
      //做异或操作是将b中与(原a)中相同的部分保留,与(原a)中不同的部分取反
      //即将b编程原来的a
    a=a^b //a=00000111
      //由于此时的a表示异同,b表示原来的a
      //同理第二部步可获得原b值,赋给a即可实现转换
    6.异或运算的特点:a两次异或同一个数b(a=a^b^b)仍然为原值a。//参考(5)即可知。
    7.异或是可交换的:a^b = b^a
  • 相关阅读:
    多线程下载
    jsoup 的简单应用
    DBUtils基本使用
    BeanUtils简单应用
    POI 生成exel报表
    java使用iText生成pdf表格
    solr开发 小案例
    iOS collectionView返回顶部 / 滚动到指定位置
    OC block
    OC 添加GCD 定时器
  • 原文地址:https://www.cnblogs.com/thewaytomakemiracle/p/5019678.html
Copyright © 2020-2023  润新知