C位运算中 异或运算符的 几点注意与示例

Wesley13
• 阅读 673

C语言的 异或运算的 运算原理 应用。需要注意的是 位运算 是符合 交换律, 结合律 及 分配律的

/*
 * ====================================================================
 *           All Rights Reserved 2007-2015 CODD Orgnization
 * ====================================================================
 * Title: xor.c
 * Desp: sample of bit xor operation 
 * Author: Liu Dongguo(jealdean@outlook.com)
 * Verion: 1.0
 * Created: 03/24/2015 22:09:14 PM
 * ChgOn: 2015-03-25 01:06:45
 * ====================================================================
 */

Principles
P0  x^x=0
P1  a^0=a
P2  c=a^x ==> a=c^x (=a^x^x=a^0=a)
#include <stdio.h> 
int main (int argc, char* argv[])
{
    sample1 :swap two values 
    int a=3;
    int b=517;
    printf("before swap:a=%d,b=%d\n",a,b);
    a^=b^=a^=b;
    printf("after swap:a=%d,b=%d\n",a,b);
    samplp2: letter lowercase --> UPPERCASE
    int cMask='a'^'A';
    char c='b';
    printf("%c-->%c\n",c,c^cMask);
    sample3: test Law of distribution
    if(12^22==(12^19+12^3))
    {
        printf("yes,xor obey Law of distribution\n");
    }
    return 0;
}
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java中的7个位运算运算符
位运算指的是针对整数的二进制进行的位移操作。位运算提供比算术运算更高的效率,但是位运算的代码可读性较差,建议所有使用位运算的地方写上注释。Java中提供7个位运算符用于位运算。左移(<<)左移运算是将操作数二进制值逐位左移若干位,左移过程中符号位不变,高位溢出则舍弃,低位则补0。范例结果范例结果00000001<<
Wesley13 Wesley13
2年前
java位运算大全
位运算因为是CPU直接支持的操作指令,也是基于二进制的操作,所以具有相当高的效率,在一些场合,合理应用位运算将具有很高的性能。通常在一些加密算法,图型算法中都会使用到位运算。Java位运算符位 运 算 符 用 来 对 二 进制 位 进 行 操 作 ,Java中提 供 了 如 下所 示 的 位 运 算符:位 运 算 符 (>>,<<
Wesley13 Wesley13
2年前
OC中的位运算
转载:https://www.jianshu.com/p/b868b30c0c88OC中的位运算和C/C语言的位运算是一样的。一般有&(按位与),|(按位或),~(按位取反),<<(左移),(右移),^(异或)以及&(按位与然后赋值),|(按位或然后赋值)等对枚举类型的操作中常常会见到。例如定义一个季节SeasonT
Wesley13 Wesley13
2年前
Java 位运算(移位、位与、或、异或、非)
//1、左移(<<)//00000000000000000000000000000101然后左移2位后,低位补0:////00000000000000000000000000010100换算成10进制为20System.out.println(5<<2);//运行结果是20//2、右移
Wesley13 Wesley13
2年前
C语言位运算
一、掩码运算1.什么是掩码?计算机中最小的单位是字节,一个字节代表8个二进制位。在实际的应用中许多信息并不需要使用一个字节来表示。例如表示当前系统运行是否正常,这种标志的取值只有0和1两种。因此使用是个完整的字节保存该标志就很浪费了。这些标志为是以位的形式存储的,因此当需要提取这些标志位的时候就需要使用掩码。掩码是人为生成的整数值,
Stella981 Stella981
2年前
Python运算符大全
  一、Python的算术运算  Python的算术运算符与C语言类似,略有不同。包括加()、减()、乘(\)、除(/)、取余(%)、按位或(|)、按位与(&)、按位求补(~)、左移位(<<)、右移位()、单目求反()、幂运算(\\)、整除运算(//)、增强运算、增强矩阵乘法(@)。  增强运算是将算术运算符或逻辑运算符放到等号的左
Wesley13 Wesley13
2年前
C语言位运算
位运算应用口诀清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运算要点1它们都是双目运算符,两个运算分量都是整形,结果也是整形。        2"<<"左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。       3""右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空
Wesley13 Wesley13
2年前
C#位运算
在C中可以对整型运算对象按位进行逻辑运算,按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位,C支持的位逻辑运算符如下表。!(https://oscimg.oschina.net/oscnet/e3ff3ca0d8190d7cf6a5c8269feaab32004.jpg)1、位逻辑非运算
Wesley13 Wesley13
2年前
Java中关于位运算的面试题
位运算的效率是最高的,因为位位运算是直接对二进制进行操作位运算只能应用于整型和char类型(char类型可以看做是特殊的无符号的整形)面试题:a:判断一个数是否是奇数a&11;b:对2^n取余。a&(2^n1);c:如何判断一个数是否是2^na&(a1)
小万哥 小万哥
12个月前
Python 运算符
运算符用于对变量和值执行操作。在下面的示例中,我们使用运算符将两个值相加:pythonprint(105)Python将运算符分为以下几组:算术运算符赋值运算符比较运算符逻辑运算符身份运算符成员运算符位运算符算术运算符算术运算符用于对数字值执行常见的数