重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
xor是异或的意思,左移右移什么的都是位运算,都是二进制层面计算的,比如2^1 就是2XOR1, 换为二进制是10 ^ 01 异或就是相同为0不同为1,那么结果就是11,就是3,异或有很巧妙的作用,以后可能会接触到,左移右移就是换为二进制然后向左移位,或者向右移位,左移:照二进制值每位向高位移动n位; 最高位(最左边的)n位舍去;最低位(最右边)填加n个0.比如6是00000110,左移就是00001000,就是12 00000110右移就是00000011,就是3
创新互联科技有限公司专业互联网基础服务商,为您提供四川电信科技城机房,高防服务器租用,成都IDC机房托管,成都主机托管等互联网服务。
首先,我们看一下异或的原理:
a = 3 ^ 5;
3的二进制是0011,5的二进制是0101。异或发现两者的不同之处,所以a最终为0110b(4)。
了解了异或的基本原理后,接下来看上述的代码。
a^=b;
这一句使得a被赋值为“数值a”与“数值b”的“差异值”。
然后:b^=a;
这一句用异或利用“差异值”来还原a的数值,并赋值给b。此时b等于a先前的数值。
最后一句:a^=b;
因为a仍然保存着“差异值”,这一句通过异或使得b的初始值被还原,并赋值给a。
。。。。。
这样,异或就将a与b的数值“巧妙”地交换了……
我也是百度的,和楼主一起学习…………
按位异或,其操作符为^,形式为
a^b
计算时,根据操作数a和b每位的值,计算结果,当a,b的对应位上值相同时,结果的该位上值为0,否则值为1。
如
char a = 0x12, b = 0x34;
a^b
= 0x12 ^ 0x34
= B0001 0010 ^ B0011 0100
= B0010 0110
=0x26
扩展资料:
异或,英文为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),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。
参考资料:异或百度百科