Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Modulo 256 Checksum?

2,075 views
Skip to first unread message

Christian Sander

unread,
Jan 22, 2003, 2:06:21 AM1/22/03
to
Liebe Newsgroup,

ich weiss, jeder hat es schon mal gehört, aber hat bitte jemand eine
Beschreibung
wie das mit der Modulo 256 Checksum funktioniert.

Viele Grüße aus München,

Chris


Karl Steeger

unread,
Jan 22, 2003, 3:30:32 AM1/22/03
to

"Christian Sander" <ch...@sander-muenchen.de> wrote in message
news:b0lftc$qbg8c$1...@ID-178609.news.dfncis.de...

Hallo,
sagen wir, Du sollst von 5 Zahlen à 1 Bytes die mod256 Checksum ermitteln.
Das Ergebnis soll wieder eine 1 Byte Checksumzahl sein. Du addierst alle 10
zahlen und immer, wenn Du größer als 256 wirst, wirfst Du den Übertrag weg.

Ich rechne zur besseren Anschaulichkeit mal im Dezimalsystem Modulo 100.

15, 67, 34, 89, 56 gesucht, die Mod100 Checksum

15+67=82 alles noch OK
82+34=116 und nun wird der Übertrag (100) weggeworfen und es geht mit 16
weiter.
16+89=105 das selbe wie oben, es geht mit 5 weiter
5+56=61 Die Checksum ist hier also 61.

Dieses "Weglassen" des Übertrags geht im Microprozessor von selbst, wenn man
auf einer 1 byte maschine (256 möglichkeiten) einfach alle (beliebig viele)
Zahlen hintereinander addiert. Jedesmal wenn ein Übertrag kommt, passiert
einfach nix, weil es mit einem Byte Datenbreite ja keinen Übertrag ins
nächst höhere Byte geben kann.

Gruß
Karl


Rafael Deliano

unread,
Jan 22, 2003, 4:08:17 AM1/22/03
to
Wie schon gesagt: man addiert die Bytes des Datenblocks auf, aber
ignoriert den Überlauf und sendet nur die unteren 8 Bit der Summe.
Im konkreten Protokoll können noch Details dazukommen.
Bei Intel-Hex wird noch das 2er-Komplement gebildet ( d.h.
Vorzeichen auf Negativ gebracht ). Damit hats der Empfänger
besonders einfach: er addiert Datenblock plus Prüfsumme und das
Resultat ist Null, wenn alles ok ist.

MfG JRD

Christian Sander

unread,
Jan 22, 2003, 7:04:30 AM1/22/03
to
Danke,

Ihr habt mir wirklich sehr geholfen.

Grüße aus München,

Chris

"Rafael Deliano" <Rafael_...@t-online.de> schrieb im Newsbeitrag
news:3E2E5F81...@t-online.de...

Rainer Zocholl

unread,
Jan 22, 2003, 4:39:00 PM1/22/03
to
(Rafael Deliano) 22.01.03 in /de/sci/electronics:

>Bei Intel-Hex wird noch das 2er-Komplement gebildet ( d.h.
>Vorzeichen auf Negativ gebracht ). Damit hats der Empfänger
>besonders einfach: er addiert Datenblock plus Prüfsumme und das
>Resultat ist Null, wenn alles ok ist.

Was aber auch sehr gefährlich sein kann, wenn nämlich auf
der -fehlerhaften- Strecke nur noch Nullen übertragen wurden...

Ähnlichen "Nebeneffekt" gibt's bei ungeschickter Wahl
von odd oder even parity...


Udo Piechottka

unread,
Jan 22, 2003, 6:06:33 PM1/22/03
to

Rainer Zocholl schrieb:

Intel-Hex ist ein ASCII-Format mit Header und Endekennung.
Keine Gefahr also.

Bei reinen Datenströmen ohne Protokoll hast Du gewiss recht,
nur verwendet man dort möglichst Sicherungsmechanismen, die
diesen Fall ausschliessen.

Gruss Udo

Holger Baxmann

unread,
Jan 23, 2003, 8:39:30 PM1/23/03
to
Am 23.01.2003 0:06 Uhr schrieb "Udo Piechottka" unter
<ifmd.messd...@t-online.de> in 3E2F23F9...@t-online.de:

z.b eine prüfsumme, die per modulo zu bilden ist ... ;-)

bax

> Gruss Udo


0 new messages