CRC: Frage zur Wikipedia-Beschreibung

OP #3226875
Lesenswert?
• ▲
▼
Hallo zusammen,

auf der Wikipedia-Seite steht bei der Implementierung [01], "falls  das 
am weitesten links stehende Bit vom Schieberegister ungleich dem 
nächsten Bit aus dem Datenstrom ist" und bei dem Code-Beispiel [02]
1
if (((crc32 & 0x80000000) ? 1 : 0) != datastream[i])

Sollte das nicht am Ende datastream[i+1] heißen? Oder liegt das an der 
Schleifenzähler-Inkrementierung von "++i" anstatt "i++"?

Gruß
Dennis

[01] 
http://de.wikipedia.org/wiki/Zyklische_Redundanzpr%C3%BCfung#Implementierung
[02] 
http://de.wikipedia.org/wiki/Zyklische_Redundanzpr%C3%BCfung#Berechnung_einer_CRC-Pr.C3.BCfsumme_in_C_und_Pascal.2FDelphi
#3226889
Lesenswert?
• ▲
▼
Ah.
'nächstes' ist hier nicht im Sinne einer Nachbarschaftsbeziehung zu 
verstehen, sondern als 'das nächste zu bearbeitende'. Also: eines nach 
dem anderen. Und das erste ist nun  mal das an der Datenstrom Position 
0. Oder eben
1
   for( i = 0; i < Länge; ++i )
2
     bearbeite das 'nächste', das i-te, Bit.
#3226899
Lesenswert?
• ▲
▼
Dennis S. schrieb:
> Ach... Danke Karl Heinz und sorry für die blöde "Frage"! *facepalm*
>
> Ich hatte mich fälschlicherweise durch die Formulierung verwirren lassen
> und das "nächste Bit" völlig falsch interpretiert. Keine Ahnung was mich
> da geritten hat... :-/

Passt schon.
Du bist nicht der Einzige, dem sowas mal passiert. Sowas kommt vor. 
Umgangssprachliche 'Beschreibungen' oder auch Pseudocode (bei dem man 
absichtlich nicht auf eine bestimmte Programmiersprache Bezug nimmt) 
sind des öfteren erstaunlich schwer eindeutig zu formulieren. Das liegt 
wohl daran, dass natürlich Sprache an sich nicht unbedingt sehr präzise 
bzw. auch oft sehr mehrdeutig sein kann. Erstaunlich ist eigentlich, 
dass Zuhörer trotzdem die gemeinte Bedeutung (meistens) heraushören.

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