OVH Cloud OVH Cloud

Calcul du XOR d'une série de nombre dans excel.

3 réponses
Avatar
strat
Calcul du XOR (ou exclusif) d'une série de nombre dans excel

Bonjour!
Je voudrais transposer dans une feuille excel l'équation suivante:

a = 20
B = 30
c = 40
d = 50

X = (((a XOR b) XOR c) XOR d)))

Je me demande aussi:
Est-il possible de calculer le xor d'une série de nombre autrement qu'en
faisant une suite de xor de chacun deux?

Par exemple aurait il un moyen de faire d'abord la somme de tous les nombres
puis ensuite appliquer une quelconque formule...


Merci à vous!

3 réponses

Avatar
Pierre Fauconnier
Bonsoir

Je serais tenté de dire que, si tes valeurs sont toutes différentes, un
simple OU matriciel suffit.
Soit à tester si C1 fait partie de B1:B4, on peut utiliser
=(OU(C1±:B4)) ( à valider en matricielle, avec MAJ+CTRL+ENTER)
ou encore, sans matricielle
=(NB.SI(B1:B4;C1)<>0)

Mais je n'ai probablement pas bien compris la question


--
Cela convient-il?
----
Pierre Fauconnier
"Si j'étais Dieu, je démissionnerais pour que les gens arrêtent de se battre
en mon nom." (Le Chat...)
(remplacer NOSPAM par pfi.be pour me répondre. Merci)


---
strat wrote:
Calcul du XOR (ou exclusif) d'une série de nombre dans excel

Bonjour!
Je voudrais transposer dans une feuille excel l'équation suivante:

a = 20
B = 30
c = 40
d = 50

X = (((a XOR b) XOR c) XOR d)))

Je me demande aussi:
Est-il possible de calculer le xor d'une série de nombre autrement
qu'en faisant une suite de xor de chacun deux?

Par exemple aurait il un moyen de faire d'abord la somme de tous les
nombres puis ensuite appliquer une quelconque formule...


Merci à vous!


Avatar
Daniel.M
Salut,

Calcul du XOR (ou exclusif) d'une série de nombre dans excel
Je voudrais transposer dans une feuille excel l'équation suivante:


AMA, tu es mieux d'utiliser une fonction VBA pour ça.

Function XORs(Plage As Range) As Long
Dim C As Range
XORs = 0
For Each C In Plage
If IsNumeric(C) Then XORs = XORs Xor CLng(C)
Next C
End Function


Dans ta feuille, en B1 par exemple
=XORs(A1:A4)

Je me demande aussi:
Est-il possible de calculer le xor d'une série de nombre autrement qu'en
faisant une suite de xor de chacun deux?


Autrement que la perte de performance reliée à l'utilisation du VBA, je ne vois
aucun gain à procéder à d'autres opérations arithmitiques sur des nombres au
lieu d'opérations "bitwise" comme XOR. Donc même avis, utilise VBA qui lui
implante le XOR en native.

Salutations,

Daniel M.

Avatar
strat
Merci de répondre Pierre.

Les valeurs que je dois calculer ne seront pas nécessairement différentes.

Le contexte est une application MIDI (musical instrument digital interface).
Des messages suivant un protocol déterminé, sont envoyé à un séquenceur sous
forme de séries d'octects suivant un protocol déterminé.

Pour modifiers les valeurs recues et les retourner à un autre matériel midi,
je de me dois de calculer un octet de contrôle (checksum byte)qui aura
comme valeur le XOR d'une suite d'octets déterminés.

Je me demandais si excel pouvais calculer une série de XOR.

Il semble bien que non.

"Pierre Fauconnier" a écrit dans le message de
news:
Bonsoir

Je serais tenté de dire que, si tes valeurs sont toutes différentes, un
simple OU matriciel suffit.
Soit à tester si C1 fait partie de B1:B4, on peut utiliser
=(OU(C1±:B4)) ( à valider en matricielle, avec MAJ+CTRL+ENTER)
ou encore, sans matricielle
=(NB.SI(B1:B4;C1)<>0)

Mais je n'ai probablement pas bien compris la question


--
Cela convient-il?
----
Pierre Fauconnier
"Si j'étais Dieu, je démissionnerais pour que les gens arrêtent de se
battre

en mon nom." (Le Chat...)
(remplacer NOSPAM par pfi.be pour me répondre. Merci)


---
strat wrote:
Calcul du XOR (ou exclusif) d'une série de nombre dans excel

Bonjour!
Je voudrais transposer dans une feuille excel l'équation suivante:

a = 20
B = 30
c = 40
d = 50

X = (((a XOR b) XOR c) XOR d)))

Je me demande aussi:
Est-il possible de calculer le xor d'une série de nombre autrement
qu'en faisant une suite de xor de chacun deux?

Par exemple aurait il un moyen de faire d'abord la somme de tous les
nombres puis ensuite appliquer une quelconque formule...


Merci à vous!