Nicolas Richard wrote:
> ME a écrit :
>[color=green]
>> Le xor utilisé est le même que celui qu'on peut utiliser dans la
>>calculatrice de Windows en mode sientifique.>
>
> J'aime le ridicule de cette définition

[/color]
Et ça doit être une version maison avec prise en charge des bits
récalcitrants par protocole propriétaire.
> Sérieusement, ça doit être quelque chose comme on fait un XOR "bit à
> bit"...Oui, c'est plus propre défini comme ça.
> Exemple, on devrait avoir (je vous laisse trouver les représentations
> binaires et décimales):
> 5 XOR 8 = 0101 XOR 1000 = 1101 = 13
> 5 XOR 9 = 0101 XOR 1001 = 1100 = 12
>
> Comme ces deux exemples marchent effectivement comme ça sous windows, ça
> prouve que c'est la bonne définition 
T'as *vraiment* fait ça avec la calculatrice win ??
Bon, sérieux : XOR (alias "ou exclusif") a la qualité d'être
inversible. Particulièrement, m |-> n xor m est involutive,
c'est-à-dire que m xor (m xor n) = n.
En plus c'est commutatif et associatif.
Donc retour au problème de ce cher ME:
b Xor (x Xor a) = 92
a Xor (x Xor 92) = 83
83 Xor (x Xor 92) = a
donne
x xor a xor b = 92
x xor a xor 92 = 83
idem que 2
donc b = 92 xor x xor a (ligne 1) = 83 (ligne 2).
Voilà : b = 83
Mais pour les autres il y a plein de valeurs possibles :
(a = 0, x = 15), (a = 1, x = 14), etc.