两个数二进制数异或 结果是什么

今天到文华书店看到了一本程序员面试的书 里面有一个问题始终令我头疼 问题就是“两个数二进制数异或后 结果是什么” 真的头疼 这是美国著名网络公司出的面试题
我问的是 两个二进制数异或后的结果 异或我当然知道怎么运算了

准确的说法是每个数位上对应的两数差的绝对值。如0100和1011。
右往左数第一位,|0-1|=1为异或值右往左数第一位。
右往左数第二位,|0-1|=1为异或值右往左数第二位。
右往左数第三位,|1-0|=1为异或值右往左数第三位。
右往左数第四位,|0-1|=1为异或值右往左数第四位。
其实只要你理解什么是异或就好做这类题目得多。
异或是一个判定是否不同的值。
在2进制中,
同一位置所对应数值不同,则异或输出的判定值为真——“1”
如果对应数值相同,则异或输出判定值为假——“0”
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-06
异或后的结果为两个数化成二进制后不同位的和。举个例子,16(10000)异或15(01111),五位都不同,所以结果为五位的和,即五位要全为一:11111=31。话说这个有什么作用呢?看了下面的例子,我也才明白这个在笔试中的作用。下面代码:
int f( int x, int y )
{
return ( x&y )+( ( x^y )>>1 )
}
问:f(729,271)=??
本题可以按照所谓的“笨方法”来做。按照上面的分析,我们知道x^y是729和271不同位的和,右移一位,就是除2。而x&y呢?你可以按照我刚分析的x^y就可以知道x&y是取x和y相同位的和的一半。所以上面的return返回的是x和y相同位的一半加上不同位的一半,就是x和y和的一般啦。即f(729,271)=(729+271)/2=500
第2个回答  2012-08-31
楼上的不对 结果不是这两个二进制数差的绝对值,你可以验证 3和5异或的结果是6而不是2

a^b = |a-b| (按位相减取绝对值,再按位累加)
第3个回答  2009-05-28
就是两个数按位异或咯
两个二进制数异或后的结果?还是个二进制数
第4个回答  2009-05-28
是这两个二进制数差的绝对值本回答被提问者采纳

两个数二进制数异或 结果是什么
右往左数第二位,|0-1|=1为异或值右往左数第二位。右往左数第三位,|1-0|=1为异或值右往左数第三位。右往左数第四位,|0-1|=1为异或值右往左数第四位。其实只要你理解什么是异或就好做这类题目得多。异或是一个判定是否不同的值。在2进制中,同一位置所对应数值不同,则异或输出的...

二进制异或运算怎么算
二进制异或运算是一种基本的逻辑运算,其规则简单明了:两个相同数值的二进制位异或结果为0,不同数值的二进制位异或结果为1。具体来说:0异或0 = 00异或1 = 11异或0 = 11异或1 = 0异或运算在逻辑中体现为真(1)与假(0)的对立关系:真异或假 = 真,假异或真 = 真,假异或假 = 假,真异...

两个二进制数的异或结果是多少
两个相“异或”的逻辑运算变量取值相同时,“异或”的结果为0。取值相异时,“异或”的结果为1

c语言中异或是什么意思?
在C语言中,异或运算是一种常见的运算符,用符号“^”表示。异或运算的意思是,当两个二进制数位不同时,结果为1;当二进制数位相同时,结果为0。因此,异或运算常常被用来判断两个二进制数中的某些位是否相同,或将某些位取反。除了用于判断二进制数位的不同之外,异或运算在C语言中还有许多其他的...

同或和异或的运算是什么?
同或运算:相同位置的两个二进制数有1结果就是1,否则为0。异或运算:相同为0,相异为1。异或是一个数学运算符。它应用于逻辑运算。异或的数学符号为“_”,计算机符号为“xor”。同或:b=ab+a‘b’。异或(exclusiveOR,缩写成xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“_”...

同或和异或的运算是什么?
同或运算,也称为XNOR(Exclusive NOR)运算,其输出在两个输入相同的情况下为1,不同的情况下为0。在数字逻辑中,同或运算可以看作是先进行异或运算(XOR)然后再对结果进行非运算(NOT)。例如:如果我们有两个二进制数A=0101和B=0110进行同或运算:A XNOR B = (A XOR B) ' = (0101 XOR ...

异或怎么运算的
异或(XOR)运算是一种二进制逻辑运算,它对两个二进制位进行比较,当且仅当这两个位不相同时,结果才为1;如果两个位相同,则结果为0。具体来说,对于任意两个二进制数A和B,其异或运算的结果C的每一位是这样得到的:对于A和B的对应位,如果A的某一位是0且B的对应位是1,或者A的某一位是1...

两个二进制数的异或结果是多少?
异或后的结果为两个数化成二进制后不同位的和。举个例子,16(10000)异或15(01111),五位都不同,所以结果为五位的和,即五位要全为一:11111=31。话说这个有什么作用呢?看了下面的例子,我也才明白这个在笔试中的作用。下面代码:int f( int x, int y ){ return ( x&y )+( ( x^y )>...

c++中的异或是什么?
异或运算符`^`是一种二进制运算符,它对两个数的二进制表示进行操作。具体来说,对于每一位,如果两个相应的二进制位相同,则结果为0;如果不同,则结果为1。例如,对于二进制数`1010`和`0011`,应用异或运算后的结果是`1001`。在C++中,异或运算符不仅可以用于整数类型,还可以用于布尔类型的操作...

异或异或是什么意思?
异或是一种逻辑运算符,它的运算规则是说,当两个数的二进制位不同时,对应的结果为1,反之为0。这种运算符是一种最为基础的运算方法,也是在计算机科学和信息技术领域中广泛应用的一种运算方法,它可以在大规模计算机科学领域以及编程和算法设计中进行操作。在数学中,异或运算符是一种二元运算符,它...

相似回答