微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

编程中的异或运算应用

一、异或运算

   异或,英文为exclusive OR,或缩写成xor

   异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:
   a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
   如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
   异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用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
   作用:
   0^0=0; 0^1=1;
   1^1=0; 1^0=1;
    口诀:相同取0,相异取1
二、作用
   若需要交换两个变量的值,除了通常使用的借用中间变量进行交换外,还可以利用异或,仅使用两个变量进行交换,如:
   a=a^b;
   b=b^a;
   a=a^b;
   详细说明
   
 1  class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             int a = 10;
 6             int b = 5;
 7             a ^= b;     // a=a^b; 15  10+5 =1010 0101
 8             b ^= a;    //  b=b^a; 10  5+15 = 0101 1111
 9             a ^= b;   //   a=a^b;  5    15+10=1111 1010
10             Console.WriteLine("{0} {1}",a,b);
11             Console.ReadLine();
12         }
13     }

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

综上:同一变量与另一变量和其异或值异或等于自身。
用例:可使用于加密算法某一环节或更多环节,使算法更复杂,不易被破解,安全性更高

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐