两个十进制数进行异或运算是什么意思?

8

我知道异或两个十进制数字意味着它们的二进制表示被异或。
但是在非数学的意义上,这意味着什么?
它具有什么重要性?


1
我不清楚你希望得到什么样的答案。你是指数字发生的模式吗?还是,为什么异或会有用呢? - IMSoP
当我使用OR或AND时,我得到的一般感觉是OR表示在一组值中选择TRUE值,而AND表示仅当所有值都设置为TRUE时将一个值设置为TRUE。但XOR是什么意思? - user2713461
对于数字(或任何具有多个位的值),这与OR和AND的含义完全不同 - 实际上不存在“真实”的概念,只有“该位是否出现在一个值中、两个值中还是都没有出现?”有点像将数字写在彼此顶部,然后看它们如何重叠。通过仔细选择值,OR可以成为+的一种形式(XOR可以成为-的一种形式)。我不确定如何有关“数字”的东西在“非数学意义上”具有“意义”;如果它是非数学的,也许你正在寻找一种当位数被视为数字时描绘操作的方法? - IMSoP
3个回答

18

如果你将结果与原来的一个数字进行异或运算,你会得到另一个原始数字。

a ^ b = X
X ^ a = b
X ^ b = a

这在密码学和哈希算法中常被使用。


3
简单来说,两个十进制数的异或是指将这两个十进制数先转换为二进制,然后执行逐位异或操作,最后再将结果转换回十进制数。
以一个例子为例,
假设我们想要找出 3^7 的结果?(其中 ^ 表示异或运算符) 步骤1:将数字从十进制转换为二进制 3 => 0011 and 7 => 0111 步骤2:对两个二进制数进行按位异或操作。
  3  : 0011
  7  : 0111
 3^7 : 0100

(提示:1^0 = 1,1^1 = 0^0 = 0)

步骤3:将答案转化为十进制

0100 => 4

因此,3的7次方等于4

请点击这里了解更多详情。


你写的是 7 => 1111,但是 7 (十进制) 不是等于 0111 (二进制) 吗? - HII

2
如果我正确理解的话,您正在寻找XOR的物理含义。 XOR是一种奇偶校验计数器,我的意思是,如果您对A和B进行XOR运算,您将计算每个位中1的数量,如果数量是奇数,则XOR输出将为1。

例如: 3 = 0011 5 = 0101

3 ^ 5 = 0110在LSB中有(1和1),表示两个1,由于两个是偶数,因此您放置0,在下一个位中,有(1和0)和计数为1的1,这是奇数,因此您放置1,依此类推。

如果您想尝试这个,请尝试此在线计算器

这在通信中用于奇偶校验、纠错算法和正交码序列生成;请参见关于CDMA的此网站获取更多详细信息。

简单的奇偶校验示例,假设我们发送8位,7位数据和第8位是校验位。我们发送: 0110011X:在这种情况下,X是奇偶校验器,因为我们有4个1和4是偶数,所以为0。 如果数据传输中存在错误,例如我们接收到这个 11100110:字节流中1的数量为5,MSB有一个错误。 5应该产生奇数校验位1,但是由于校验位为0,这意味着数据传输中存在错误。 这是串行数据传输中使用的最简单的奇偶校验。 纠错码构建在其上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接