我知道两个位A和B的基2中的异或操作符是(A+B)%2,换句话说,它是加法模2。
如果我想计算三元系统(基3)中异或运算的真值表,它与加法模3相同吗?在基3系统中,2 XOR 2=1(自(2+2)%3 = 1)吗?
我读过这个链接,它指出在一个基本的3系统中,2XOR 2是2,而我不能理解它背后的公式?
一般来说,对于任何一个基' x ',这个基加法模x的异或运算是吗?
发布于 2017-03-05 00:18:09
XOR代表eX包含或,这是一个逻辑操作。此操作仅在二进制逻辑中定义。在链接中,作者定义了完全不同的操作符,其工作方式与二进制基的XOR相同。您可以称它为大于2的XOR操作的“扩展”。但是正如您在问题中提到的,有多种方法可以实现这个扩展。每一种方法都会保留“原始”异或的一些属性,并使其他一些属性变得松散。例如,你可以坚持观察
Ab= (a + b)⊕mod2
在这种情况下,基3的“扩展异或”将为输入2、2产生1的输出。但是这个XOR3将不再满足其他适用于标准异或的方程,例如:
A⊕b⊕b=a
A⊕b⊕a=b
如果您选择“保存”这些,您将从您的链接得到操作。您还可以保留异或的一些不同属性,例如
A⊕a=0
再做一次和前两次不同的手术。
所以简单的回答是:短语“非二进制基的异或函数”没有任何意义。XOR运算符仅在二进制逻辑中定义。如果您想将其扩展到非二进制基、非整数数或复数或其他任何东西,您可以使用任何行为和任何“真值表”定义扩展函数。但是这个扩展不再是XOR函数了。
发布于 2019-09-11 13:18:54
虽然我不知道技术上是否在较高的基数中定义了XOR,但可以将XOR的属性保持在较高的基中,以便:
A⊕b⊕b=a
A⊕b⊕a=b
正如博客文章所示,使用(base - (a + b) % base) % base
是可行的。您缺少的部分是base的第一个实例。在3基的2⊕2的例子中,我们得到了给出2的⊕公式,这个公式只适用于单数数。如果您想要扩展到多个数字,您将对每一对数字使用相同的公式,就像二进制中的标准XOR按位表示一样。
例如,每一对数字(即百位、十位、一位)运行时,基数为10的185个⊕42给出了如下结果:
(10 - (1 + 0) % 10) % 10 => 9
(10 - (8 + 4) % 10) % 10 => 8
(10 - (5 + 2) % 10) % 10 => 3
或983当放在一起。如果你运行983⊕145,你会发现它达到了85。
https://stackoverflow.com/questions/42602572
复制相似问题