c语言xor函数 c语言ord函数

c语言中XOR是什么意思?请问有什么作用?左移右移呢?能不能举个例子,我刚学不太明白,不懂。

xor是异或的意思,左移右移什么的都是位运算,都是二进制层面计算的,比如2^1 就是2XOR1, 换为二进制是10 ^ 01 异或就是相同为0不同为1,那么结果就是11,就是3,异或有很巧妙的作用,以后可能会接触到,左移右移就是换为二进制然后向左移位,或者向右移位,左移:照二进制值每位向高位移动n位; 最高位(最左边的)n位舍去;最低位(最右边)填加n个0.比如6是00000110,左移就是00001000,就是12 00000110右移就是00000011,就是3

创新互联科技有限公司专业互联网基础服务商,为您提供四川电信科技城机房高防服务器租用,成都IDC机房托管,成都主机托管等互联网服务。

请帮我讲解一下C语言中的异或运算

首先,我们看一下异或的原理:

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的数值“巧妙”地交换了……

我也是百度的,和楼主一起学习…………

C语言里的按位异或运算符

按位异或,其操作符为^,形式为

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),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。

参考资料:异或百度百科


分享标题:c语言xor函数 c语言ord函数
转载注明:http://ybzwz.com/article/dddcsop.html