bonjour à tous,
je voudrais faire un calcul avec des "unsigned integer" qui génére parfois des dépassements de capacité mais qui sont normaux
j'ai écrit un code mais il est très moche à lire ... et je me demandais s'il n'y avait pas une plus belle écriture possible
le calcul normal est :
donc comme ce calcul dépasse parfois la taille d'un Uint , je passe par des variables temp qui sont en Ulong (2 fois la taille) et je filtre aprèsa += ((b << 4) + k0) Xor (b + sum) Xor ((b >> 5) + k1)
voila mon code pas beau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Dim a As UInteger Dim b As UInteger Dim k0 As UInteger Dim k1 As UInteger Dim temp1 As ULong Dim temp2 As ULong Dim temp3 As ULong Dim temp4 As ULong Dim delta As UInteger = 2654435769 Dim sum As UInteger = 0merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 temp1 = (b << 4) temp1 += k0 temp2 = b temp2 += sum temp3 = b >> 5 temp3 += k1 temp4 = a + ((temp1 Xor temp2 Xor temp3) And &HFFFFFFFFUI) a = temp4 And &HFFFFFFFFUI
personne peut m'aider à mieux écrire le code ?
j'ai essayé avec CLng() mais toujours la meme erreur![]()
Partager