Quel est ce langage? et qu'est-ce que cela veut dire?

romainstq Messages postés 3 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 15 août 2011 - 23 févr. 2009 à 13:41
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011 - 24 févr. 2009 à 13:20
Bonjour,

je ne sais pas si je poste dans la bonne catégorie du forum, mais je souhaiterai savoir ce que vous pensez du code suivant et si les personnes qui savent l'expliquer pourraient m'en faire un rapide compte rendu (simple SVP car, meme si je maitrise un peu du VB, pour le reste...)

Voici le code en question:

full = form["A"] + form["B"][4:8] 

crc =
CRC32().crc32(full)
code = ((crc ^ 0xaaaa) + 0x14c1) % 100000

Pour la première ligne, je sais qu'on stock dans full la constante A + la concaténation de B (des caractères 4 à 8)
(non?!)

mais pour les 2 lignes du dessous, j'ai un peu de mail. On doit calculer un CRC32 de full qu'on stocke dans la constante CRC, mais apres... ?

Si vous pouviez m'aider! je vous en remercie d'avance!

1 réponse

uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
24 févr. 2009 à 13:20
Salut,
Ce n'est pas du C.
Pour la ligne crc = CRC32().crc32(full) on ne peut pas savoir, on ne sait ni ce que retourne CRC32() ni son attribut crc32()
Pour la ligne code = ((crc ^ 0xaaaa) + 0x14c1) % 100000 c'est un simple calcul de maths :
- on fait un OU exclusif (XOR) entre 'crc' (calculé à la ligne précédente) et AAAA (en héxa)
- on ajoute 14C1 (en héxa) au résultat précédent
- on calcule le modulo par 100000 du résultat précédent

Pour le XOR, quelques exemples :
1 xor 1 = 0
1 xor 0 = 1
donc 1101 xor 1001 = 0100

Pour le modulo, c'est le reste d'une division entière :10 % 3 1, car 10 / 3 3 et reste 114 % 4 2, car 14 / 4 3 et reste 2

En espérant t'avoir éclairci.

Cordialement, uaip.
0
Rejoignez-nous