我知道基数2中的两个位A和B的XOR运算符是(A + B)%2。换句话说,它是模2的加法。
如果我想在三元系统(基数3)中计算XOR运算的真值表,它是否与加法模3相同? 例如:在基础3系统中,2 XOR 2 = 1(因为(2 + 2)%3 = 1)?
我读了这个link,表明基础3系统中的2 XOR 2是2,我不能理解背后的公式?
一般来说,对于任何基数' x是该基数的XOR运算 - 加法模x?
答案 0 :(得分:0)
嗯,XOR代表e X 集群 OR ,这是一个逻辑操作。此操作仅在二进制逻辑中定义。在您的链接中,作者定义了完全不同的运算符,其作用与二进制基数的XOR相同。对于大于2的基数,您可以将其称为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功能。
答案 1 :(得分:0)
虽然我不知道XOR在技术上是用较高的基数定义的,但是XOR的属性可以用较高的基数来维护,例如:
a⊕b⊕b = a
a⊕b⊕a = b
如博客文章所示,使用 woo: {
api: {
host: 'localhost/wordpress',
protocol: 'http',
auth: {
consumer_key: "ck_c2bb899b85976683687d745a207cd2f8424d",
consumer_secret: "cs_40f58a37c6408843dd15b22295db633b38",
version: "v3"
}
}
},
db: {
host: 'localhost',
port: 9200,
driver: 'elasticsearch',
url: process.env.DATABASE_URL || 'http://localhost:9200',
indexName: process.env.INDEX_NAME || 'vue_storefront_catalog'
},
是可行的。您缺少的部分是 base 的第一个实例。在以3为底的2⊕2的示例中,我们得到(base - (a + b) % base) % base
,它确实给出了2。此公式仅适用于一位数字。如果要扩展为多个数字,则对每对数字使用相同的公式,就像二进制中的标准XOR按位运算一样。
例如,以10为底的每对数字(即几百,十,一)运行时,以185⊕42为单位:
(3 - (2 + 2) % 3) % 3)
(10 - (1 + 0) % 10) % 10 => 9
(10 - (8 + 4) % 10) % 10 => 8
或983当放在一起时。如果您以983⊕145的价格运行,则会发现结果为85。