• 异或


    定义

    异或(xor)是一个数学运算符。它应用于逻辑运算。异或符号为“^”。其运算法则为:

     

      a^b=a'b+ab'(a'为非a)。

     

      真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。 不同为1,相同为0,如1001异或1010等于0011.

     

      异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。

     

      异或略称为XOR、EOR、EX-OR

     

      程序中有三种演算子:XOR、xor、 ^。

     

      使用方法如下

     

      z = x ^ y;

     

      z = x xor y;

    异或运算法则

    1. a ^ b = b ^ a

     

      2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;

     

      3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.

     

      4. a ^ b ^ a = b.

     

      5.若x是二进制数0101,y是二进制数1011

     

      则x^y=1110

     

      只有在两个比较的位不同时其结果是1,否则结果为0

     

      即“相同为0,不同为1”!

    作用

    在计算机中普遍运用,异或(xor)的逻辑符号^ (Shift + 6)或一个圆圈里面增加一个+(⊕)或者·.形象表示为:

     

      真^假=真

     

      假^真=真

     

      假^假=假

     

      真^真=假

     

      或者为:

     

      True ^ False = True

     

      False ^ True = True

     

      False ^ False = False

     

      True ^ True = False

     

      部分计算机语言用1表示真,用0表示假,所以两个字节按位异或如下

     

      00000000

     

      异或

     

      00000000

     

      =

     

      00000000

     

      ============我是分界线============

     

      11111111

     

      异或

     

      00000000

     

      =

     

      11111111

    异或的巧妙应用

      C语言中若需要交换两个变量的值,除了通常使用的借用中间变量进行交换外,还可以利用异或,仅使用两个变量进行交换,如:

     

      a=a^b;

     

      b=a^b;

     

      a=a^b;

     

      这样就完成了a与b的交换。

     

  • 相关阅读:
    docker 相关
    mongo 连接方式
    Redis 面试题
    Ubuntu如何挂载U盘
    python try异常处理之traceback准确定位哪一行出问题
    Opencv 基础用法
    CentOS 7 安装MongoDB 4.0(yum方式) 简单方便
    linux中pthread_join()与pthread_detach()详解
    C语言线程池 第三方库
    XML文件删除掉注释
  • 原文地址:https://www.cnblogs.com/feiling/p/2710799.html
Copyright © 2020-2023  润新知