【问题标题】:Truth table for XOR function for non binary bases非二进制基的 XOR 函数的真值表
【发布时间】:2017-03-04 23:27:29
【问题描述】:

我知道两位 A 和 B 的以 2 为底的 XOR 运算符是 (A+B)%2。换句话说,就是模2加法。

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

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

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

【问题讨论】:

  • 不,反之亦然,有很多代数结构有加法,GF(2)中的加法是异或。

标签: xor base ternary


【解决方案1】:

虽然我不知道 XOR 在技术上是在更高的基础上定义的,但 XOR 的属性可以在更高的基础上保持这样:

a ⊕ b ⊕ b = a

a ⊕ b ⊕ a = b

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

例如,185 ⊕ 42 以 10 为底,对每对数字(即百、十、个)运行时,我们得出:

(10 - (1 + 0) % 10) % 10 => 9

(10 - (8 + 4) % 10) % 10 => 8

(10 - (5 + 2) % 10) % 10 => 3

或 983 放在一起。如果你运行 983 ⊕ 145,你会发现它是 85。

【讨论】:

    【解决方案2】:

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

    a ⊕ b = (a + b) mod 2

    在这种情况下,您的基数 3 的“扩展 XOR”将为输入 2、2 产生 1 的输出。但是这个 XOR3 将不再满足适用于标准 XOR 的其他方程,例如这些:

    a ⊕ b ⊕ b = a

    a ⊕ b ⊕ a = b

    如果您选择“保存”这些内容,您将从链接中获取操作。您还可以保留 XOR 的一些不同属性,比如

    a ⊕ a = 0

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

    所以简短的回答是:“非二进制基数的 XOR 函数”这句话没有任何意义。 XOR 运算符仅在二进制逻辑中定义。如果您想将它扩展为非二进制基数或非整数或复数或其他任何东西,您可以这样做并定义一些具有任何行为和您想要的“真值表”的扩展函数。但是这个扩展不再是 XOR 函数了。

    【讨论】:

    • 作为一个好奇点,如果 XOR 被定义为绝对差,那么在高于 2 的基础上会丢失哪些属性?
    • 例如关联性。对于基数 2 XOR:a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c。对于更高的基础,情况不再如此。例如。对于基数 10:3 ⊕ (6 ⊕ 7) = 3 ⊕ 1 = 2 与 (3 ⊕ 6) ⊕ 7 = 3 ⊕ 7 = 6
    • 是的,很好的证明(除了我认为最后的 6 应该是 4)。有趣的是,某些代数性质取决于所使用的基数,并且高基数中的不同运算会收敛于低基数。
    猜你喜欢
    • 2016-03-16
    • 2012-12-31
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2015-01-21
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多