Hexadécimal de calcul pour une somme de contrôle
Je ne comprends pas comment ce résultat peut être égal à zéro. Cela m'a été présenté en a un exemple pour valider une somme de contrôle d'un message.
ED(12+01+ED=0)
Comment cela peut-il être nul?
"1201 est le message", ED est la somme de contrôle, ma question est plus sur, comment puis-je déterminer la somme de contrôle?
Merci pour toute aide.
Meilleures salutations,
FR
Vous devez vous connecter pour publier un commentaire.
La somme de contrôle est sans doute représenté par un octet.
Un byte peut stocker 256 valeurs différentes, de sorte que le calcul est probablement fait module 256.
Depuis 0x12 + 0x01 + 0xED = 256, le résultat est 0.
La somme de contrôle est la valeur d'un octet
B
qui fait la somme des octets du message +B
= 0 (modulo 256).Donc, comme @LanceH dit dans le commentaire, pour calculer la somme de contrôle
B
, vous...M
)M' = M % 256
B
est calculée comme256 - M'
.Je ne suis pas sûr au sujet de votre somme de contrôle dans les détails mais en base 16 de l'arithmétique (et en base 10):
Si votre somme de contrôle modulo-256 (16^2), vous ne conservez que les 2 derniers de base-16 chiffres, si vous avez
00
Bien, évidemment, quand vous ajoutez 12 + 01 + ED la conséquence des débordements de 1 octet, et c'est en fait le nombre hexadécimal 100. Donc, si vous ne prenez le dernier octet de 0x0100. vous obtenez 0.