Page 1 sur 1

[..] Comparer 2 données binaires (poids)

Posté : dim. 20 déc. 2009 16:35
par Xnorky
Bonjour à tous,

Je suis en train de retranscrire un script en javascript en AutoIT et je bloque sur une partie du code...

Voici le code javascript :

Code : Tout sélectionner

for (var loc3 = 0; loc3 < 128; ++loc3) {
    loc1[loc3] = loc1[loc3] ^ loc6[loc3 + 256] & 1;
}
 
Après quelques recherches, j'ai trouvé ce qu'étaient les opérateurs ^ et &

Image


En fait cela compare les poids de 2 bits. Mais là problème, j'arrive pas trop à savoir comment retranscrire cette opération.

J'ai fait ça, mais je sais pas si cela donne le même résultat :

Code : Tout sélectionner

For $loc3 = 1 To $loc3 < 129 Step 1
    $loc1[$loc3] = BitAND(BitXOR($loc1[$loc3], $loc6[$loc3+256]), 1)
Next
 
Quelqu'un saurait-il me venir en aide ?

Merci d'avance

Re: [..] Comparer 2 données binaires (poids)

Posté : dim. 20 déc. 2009 17:03
par sylvanie
je dirai que c'est à peu prêt ça effectivement avec peut être cette rectification :
► Afficher le texte

Re: [..] Comparer 2 données binaires (poids)

Posté : dim. 20 déc. 2009 18:07
par Xnorky
OK merci

Pour ce qui est du départ du tableau à 1, c'est parce que j'ai créé le tableau à partir d'un chaine avec la fonction StringSplit() et du coup, la valeur 0 du tableau est le nombre de cellules du tableau.

Du coup, pour un chaine de 128 caractères, $loc3[0] contient la donnée "128" pour le nombre d'unités de la chaine
et de $loc3[1] à $loc3[129] pour les données...

Et donc, du coup, si mon code est bon, c'est que c'est avant que ça doit déconner... je vais chercher :)

Merci beaucoup

Re: [..] Comparer 2 données binaires (poids)

Posté : dim. 20 déc. 2009 18:33
par sylvanie
petit rappel au cas où ... il faut faire attention sur le fait que les fonctions Bitand, Bitxor ... ne gèrent que des nombres sur 32 bits, ce qui peut être génant si les nombres testés sont de taille plus grande ...

Re: [..] Comparer 2 données binaires (poids)

Posté : dim. 20 déc. 2009 19:46
par Xnorky
OK merci de la précision, mais ça ne devrait pas poser de problème pour mon cas :)