Forum: Mikrocontroller und Digitale Elektronik checksumme


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Thomas (Gast)


Lesenswert?

kann mir eine mal den folgenden algorythmus beschreiben, ich kapiers so
einfach nicht:

is the checksum field that represents the checksum of the record. The
checksum is calculated by summing the values of all hexadecimal digit
pairs in the record modulo 256 and taking the two's complement.

(Das ist der Algorythmus zum berechnen einer intel hex file check
summe.)
MfG

von Tobi (Gast)


Lesenswert?

dateiinhalt:
11 22 33 54 55 usw...

(11+22+33+54+55 ....) modulo 256, damit nichts grösser als ein byte
rauskommt

das ergenis dann invertieren und +1

res = ~res + 1

von Thomas (Gast)


Lesenswert?

Ich bekomms nicht hin.

46 4C 55 49 44 20 50 52 4F 46 49 4C 45 00 46 4C = 1079d % 256d = 55d

55d = 110111b , invert -> 001000b = 8d

als ergebniss müsste eigentlich 33 rauskommen (so stehts in der
original datei)

MfG

von Tobi (Gast)


Lesenswert?

ich komm auf 201d,
du hast nur von den 6bit das komplement genommen, musst aber mit allen
8 bit arbeiten, und dann noch plus 1. stimmen tuts trotzdem nicht

von Thomas (Gast)


Lesenswert?

Ich hab ein paar ziffern vergessen.
jetzt stimmts, danke.

10 24 62 00 46 4C 55 49 44 20 50 52 4F 46 49 4C 45 00 46 4C = 4CDh =
1229d % 256d = 205d = 11001101b invert-> 00110010b = 50d + 1d = 51d =
32h + 1h = 33 h

von schamp (Gast)


Lesenswert?

Modulo 256 versteh ich hier (damit nicht größer als 1 Byte), aber wieso
muss dann noch das 2er Komplement gebildet werden ??

von Werner B. (Gast)


Lesenswert?

Checksum = (NULL minus ((Summe aller Werte) % 256)) % 256;

Oder: (Checksum + (Summe aller Werte)) % 256 == 0;

Wobei man sich das ganze Modulogegurke spart wenn wenn man alles in
einem unsigned 8-bit aufsummiert, bzw. am ende  mit 0xFF maskiert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.