PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Checksum
Checksum
Débuté par Gerard, 22 déc. 2006 18:52 - 3 réponses
Posté le 22 décembre 2006 - 18:52
Bonjour,

Je dois créer dans un protocole, un bit de controle.
J'au une chaine de 4 caractere à envoyer, suivi d'un 'checksum' décrit
comme suit:
"Complement à 2 de la somme des 4 bytes précedents + 1"

QQ1 peut-il me traduire celà en formule mathématique.

Merci par avance.

Gérard KREBS

--
GG - Windeviste sur le pont.
Posté le 22 décembre 2006 - 20:49
4 bytes = 4 octets en français
1 octet = 8 bits
complementer à 2 = inverser les bits : 10101010 devient 01010101
Voir :http://www.commentcamarche.net/base/representation.php3
Posté le 26 décembre 2006 - 10:10
Albert a exprimé avec précision :

4 bytes = 4 octets en français
1 octet = 8 bits
complementer à 2 = inverser les bits : 10101010 devient 01010101
Voir :http://www.commentcamarche.net/base/representation.php3


Merci, mais en windev ça donne quoi, car j'ai trouvé le complement à 1
( NONBinaire(x) ) mais pas le complement à 2, pourtant ça a l'air de
faire la meme chose !

--
GG - Windeviste sur le pont.
Posté le 29 décembre 2006 - 09:41
Bonjour Albert,

Je ne m'en sort pas avec ce calcul, peut tu me dire ce qui va pas dans
mon code, car je trouve un 'nDt' (code ci-apres) toujours négatif.

Mon code :

PROCEDURE PRIVÉE Checksum(sCh)
nSom est un entier = 1
nDt est un entier sur 1 octet
i est un entier
j est un entier = Taille(sCh)
POUR i = 1 A j
nDt = Asc( sCh[[i]] )
nSom = nDt
FIN
nDt = ETBinaire(nSom)
RENVOYER Caract(nDt)




Le 22/12/2006, Albert a supposé :

4 bytes = 4 octets en français
1 octet = 8 bits
complementer à 2 = inverser les bits : 10101010 devient 01010101
Voir :http://www.commentcamarche.net/base/representation.php3


--
GG - Windeviste sur le pont.