Operator - Verallgemeinerter symmetrischer Unterschied
Wenn Sie binäres xor nehmen und es auf andere Radices verallgemeinern, können Sie dies durch den absoluten Wert der Differenz jedes Elements in einem Radixvektor tun. Dies hat jedoch nicht die gleichen Eigenschaften wie das binäre symmetrische Differen. Der Grund ist, dass wir beim Wegwerfen des "Vorzeichens" des Unterschieds nicht in der Lage sind, eine Oper zu rekonstruieren und das Ergebnis und das andere zu geben, wie wir es in binärem xor können. Also verlieren wir das schöne Eigentum
ABA = B.
Wir behalten jedoch andere schöne Eigenschaften wie
A0 = A.
AA = 0
Es gibt eine Möglichkeit, diese Eigenschaft beizubehalten. Soweit ich das beurteilen kann, werden jedoch 3 Vektoren für jedes Ergebnis ausgegeben. Der erste Vektor ist die übliche symmetrische Differenz, die anderen beiden Vektoren sind Binärvektoren gleicher Länge wie der erste, die das Vorzeichen des Ergebnisses aufzeichnen, wobei ein solcher Vektor für jede Ordnung der Operanden das binäre Komplement des anderen ist. Auf diese Weise kann ein ursprünglicher Operand unter Berücksichtigung des Ergebnisses und der anderen Opernade UND des "Vorzeichen" -Vektors anderer Operanden wiederhergestellt werden.
Beispielsweise :
Angenommen, wir haben 2 Basis-10-Vektoren, die den Zahlen 1137 und 9284 entsprechen. Was ist das xor dieser beiden Zahlen in Basis 10?
7 3 1 1 4 8 2 9
4 8 2 9 7 3 1 1
Signed
Result 3 -5 -1 -8 -3 5 1 8
Sign
Vector 0 1 1 1 1 0 0 0
Symmetric
Difference 3 5 1 8
Stellen Sie 1137 mit 8153 und 9284 wieder her
3 5 1 8
+ - - -
4 8 2 9
7 3 1 1
Meine Frage ist: Gibt es eine bessere Konstruktion der verallgemeinerten symmetrischen Differenz in einem Radix> 2, so dass wir uns nicht an das Zeichen erinnern müssen?