非二进制基数 XOR 函数的真值 table

Truth table for XOR function for non binary bases

我知道两个位 A 和 B 的基数 2 的 XOR 运算符是 (A+B)%2。换句话说,它是加法模 2。

如果我想在三元系统(基数 3)中计算异或运算的真值 table,它与加法模 3 相同吗? 例如:在基数为 3 的系统中,2 XOR 2 = 1(因为 (2+2)%3 = 1)吗?

我读到这个 ​​link,它表明 3 进制系统中的 2 XOR 2 是 2,但我无法理解其背后的公式?

一般来说,对于任何基数 'x',该基数的异或运算 - 加法是否对 x 取模?

嗯,XOR 代表 eXclusive OR,它是一个逻辑运算。而这个操作只定义在二进制逻辑中。在您的 link 中,作者定义了完全不同的运算符,它与二进制基数的 XOR 相同。对于大于 2 的基数,您可以将其称为 "extension" 异或运算。但是正如您在问题中提到的,有多种方法可以进行此扩展。并且每种方式都会保留 "original" XOR 的某些属性并丢失其他一些属性。例如,您可以坚持观察

a ⊕ b = (a + b) mod 2

在这种情况下,您对基数 3 的 "extended XOR" 将对输入 2、2 产生输出 1。但是此 XOR3 将不再满足适用于标准 XOR 的其他方程式,例如这些:

a ⊕ b ⊕ b = a

a ⊕ b ⊕ a = b

如果您选择 "save" 那些,您将从 link 获得操作。你也可以保留一些不同的属性异或,比如

a ⊕ a = 0

并得到另一个不同于前两个的操作。

所以简短的回答是:短语 "XOR function for non binary bases" 没有任何意义。 XOR 运算符仅在二进制逻辑中定义。如果你想为非二进制基数或非整数或复数或其他任何东西扩展它,你可以这样做并定义一些具有任何行为和任何你想要的 "truth table" 的扩展函数。但是这个扩展将不再是 XOR 函数。

虽然我不知道 XOR 在技术上是在更高的基数中定义的,但 XOR 的属性可以在更高的基数中维护,因此:

a ⊕ b ⊕ b = a

a ⊕ b ⊕ a = b

如博客 post 所示,使用 (base - (a + b) % base) % base 有效。您缺少的部分是 base 的第一个实例。在以 3 为基数的 2 ⊕ 2 的示例中,我们得到 (3 - (2 + 2) % 3) % 3),它确实给出了 2。此公式仅适用于单个数字。如果你想扩展到多个数字,你可以对每对数字使用相同的公式,就像二进制中的标准异或按位一样。

例如,当每对数字(即百位、十位、个位)的 运行 为 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。