2010-08-25 34 views
0

Le problème est que je veux obtenir les valeurs d'origine de B, ou la valeur d'origine de C ou A. Voici le code:Comment retrouver les valeurs d'origine à partir du résultat final des procédures séquentielles Xor?

Dim strA As String = "A" 
    Dim strB As String = "B" 
    Dim strC As String = "C" 
    Dim result As Byte = 0 

    ' Fetch the byte character code of strings and Xor them all into the result in a sequence. 
    result = result Xor AscW(strA) 
    result = result Xor AscW(strB) 
    result = result Xor AscW(strC) 

    ' the final result value is 64 

Comment faire cela? S'il vous plaît aidez-moi avec la bonne solution à ce problème. S'il peut y avoir un autre paramètre qui, lorsqu'il est appliqué avec une formule, peut révéler les valeurs d'origine: "A", "B", "C". Je vous remercie.

+1

Votre question n'a pas de sens. Décrivez ce dont vous avez besoin, ce que vous attendez et ce que vous avez essayé. – Timwi

+0

J'ai trois entiers. I Xor le premier entier dans la valeur de résultat. Ensuite, je Xor le second entier avec le résultat du premier Xor. Ensuite, je X ou la troisième valeur avec le résultat de la deuxième Xor. Plus tard, je n'ai pas les trois valeurs mais j'ai la valeur du résultat final. Maintenant, comment récupérer les trois valeurs de la valeur du résultat? – Tush

Répondre

1

Si je comprends bien votre question, ce n'est tout simplement pas possible. Il existe plusieurs façons de diviser result en strA, strB et strC.

Pour simplifier la lecture, pensez plutôt à ajouter. Supposons que vous commenciez avec A = 5, B = 6 et C = 7. La somme est 18. Maintenant, supposons que vous commenciez par A = 1, B = 1 et C = 16. La somme est toujours 18. Conclusion: si tout a est "18" il n'y a aucun moyen de le séparer, car plusieurs entrées donnent la même sortie.

+0

Si je connais une valeur source, est-ce possible? – Tush

+0

@Tush non, vous avez toujours le même problème. 1 + 9 = 10, mais aussi 2 + 8 = 10, et 3 + 7 = 10, et 4 + 6 = 10, etc ... XOR a la même propriété. –

+0

Existe-t-il un autre moyen de faire ce dont j'ai besoin? S'il vous plaît, dites. – Tush