perl skript intapretieren.

OP #4303049
Lesenswert?
• ▲
▼
Hallo,

ich versuche momentan ein serielles Kommunikationsprotokoll zu 
implementieren. Dazu benötige ich jedoch am Ende eine Checksumme.
Leider existieren keine Herstellerangaben, jedoch habe ist ein Beispiel 
in "perl" gefunden.
1
sub checksum16 ($) {
2
# calculates the checksum 16 of the given string argument
3
  my @bytes = unpack("C*", $_[0]);
4
  my $sum = 0;
5
  foreach(@bytes) {
6
    $sum += $_;
7
    $sum %= 2**16;
8
  }
9
  return $sum;
10
}

Bedauerlicherweise habe ich mit Perl noch nie gearbeitet. Kann mir 
jemand erklären, wie die Summe berechnet wird?

MfG

pindrei
Moderator #4303097
Lesenswert?
• ▲
▼
Ja, so hätte ich gesagt. y musst du vorher natürlich noch auch 0 setzen.
y %= 65536 kann auch am Ende außerhalb der Schleife stehen, das ändert
am Ergebnis nichts. Du kannst diese Anweisung auch ganz weglassen, wenn
du y vom Typ uint16_t machst, da dann jede Addition automatisch modulo
2**16 gerechnet wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren