Hallo zusammen Ich habe eine Aufgabe erhalten eine Checksumme aus einem ASCII String zu errechnen. Kann mir jemand genau erklären wie das funktioniert. Soviel ich mich derweil informiert habe müssen zuerst alle ASCII zeichen in DEZ ermittelt werden. Dannach DEZ in BIN und dann miteinander via XOR verknüpft werden. 1. Zeichen mit 2. Zeichen dann das Resultat mit dem 3. Zeichen usw. Ich habe aber auf einer anderen Seite gelesen dass die Summe aller DEZ Werte ermittelt wird dann negiiert und dann noch etwas was ich nicht mehr verstanden habe. Wichtig ist dass ich die Aufgabe von Hand lösen muss. (nur Mithilfe der ASCII Tabelle) Könnt ihr mir weiterhelfen bei Rechnen der LRC vom Beispiel: 2426ABC Danke im Voraus Gruss Tom
Thomas schrieb: > Ich habe aber auf einer anderen Seite gelesen Konzentriere dich nur auf das, was du in der Schule gelernt hast. Im Internet können auch Fehler sein.
Hi J.Watt ja ich weiss desshalb habe ich das Internet ja auch nur als Qulle für informationen verwendet. Dies muss leider im selbsstudium passieren und da ich nun im Internet keine verlässliche Information gewonnen habe suche ich jemanden der mir etwas auf die Sprünge helfen kann. Kannst du mir irgendwelche Tipps oder Informationen geben mit denen ich meine Aufgabe lösen kann? Gruss Tom
Und was sagen deine Schulunterlagen dazu? -> Welche Stelle aus den noch nicht näher erläuterten Schulunterlagen verstehst du nicht? Wenn du aus den Schulunterlagen zitierst kann man die unverständlichen Stellen mal unter die Lupe nehmen. Ralf
Es steht nur Berechne die LRC aus folgendem String: 2426ABC So steht die Aufgabe geschrieben.
Thomas schrieb: > Es steht nur Berechne die LRC aus folgendem String: 2426ABC Es gibt nicht die LRC. Zwei LRCs hast du ja schon genannt: Die mit Paritäts- und die mit Summenbildung. Wenn die Aufgabenstellung nicht angibt, welche zu benutzen ist, dann such dir einfach eine aus. Für die Berechnung auf dem Papier würde ich die Variante mit Summenbildung (nach ISO 1155) wählen, weil du dazu die einzelnen ASCII-Codes nicht bitweise bearbeiten musst. Mehr dazu: http://en.wikipedia.org/wiki/Longitudinal_redundancy_check Edit: Oder habt ihr im Unterricht eine bestimmte LRC näher behandelt? Dann solltest du natürlich diese verwenden.
:
Bearbeitet durch Moderator
Nein ich denke ich muss die Aufgabe mit Paritätsbildung lösen da ich die ASCII Tabelle als Hilfsmittel verwenden dar. Bei dieser Methode nehme ich alle ASCII Zeichen wandle Sie in BIN. BSP.: 2426ABC Poistion1: 2 --> 0011 0010 Poistion2: 4 --> 0011 0100 Poistion3: 2 --> 0011 0010 Poistion4: 6 --> 0011 0110 Poistion5: A --> 0100 0001 Poistion6: B --> 0100 0010 Poistion7: C --> 0100 0011 Dann Position1 ^ Poistion2 --> Zwischenresultat1 Anschliessend Zwischenresultat1 ^ Position3 usw. Hab dieses Beispiel mal durchgerechnet: 0011 0010 --> Pos1 0011 0100 --> Pos2 0000 0110 --> Zwischenresultat1 0011 0010 --> Pos3 0011 0100 --> Zwischenresultat2 0011 0110 --> Pos4 0000 0010 --> Zwischenresultat3 0100 0001 --> Pos5 0100 0011 --> Zwischenresultat4 0100 0010 --> Pos6 0000 0001 --> Zwischenresultat5 0100 0011 --> Pos7 0100 0010 --> Resultat Nun ist die Frage was mach ich mit dem Resultat? Grüsse Tom
Thomas schrieb: > Nun ist die Frage was mach ich mit dem Resultat? Zusammen mit dem Rechenweg auf das Lösungsblatt schreiben. In einer realen Anwendung würde der Sender den errechneten Wert als zusätzliches Byte nach den Nutzdaten senden, so dass der Empfänger überprüfen kann, ob die Kommunikation fehlerfrei war.
Also dann wäre das Resultat 0100 0010 --> DEZ: 66 --> ASCII: B Dann würde folgendes Übertragen werden: 2426ABCB Stimmt dies so? Gruss Tom
Besten Dank bis hierhin für eure super Hilfe und Unterstützung! Wie sieht es aus wenn die Zeile etwas länger ist. Zum Beispiel: 564884HDKWI??KDJE82032LO999 Ist es auch möglich dass der LRC für eine Anzahl Zeichnblöcke berechnet wird und am Schluss angefügt wird? Wie im Beispiel mit der Zeile: 564884HDKWI??KDJE82032LO999 1. Block: "564884HD" 2. Block: "KWI??KDJ" 3. Block: "E82032LO" Und dann der LRC Block 1: Resultat als Beispiel: "9" Block 2: Resultat als Beispiel: "9" Block 3: Resultat als Beispiel: "9" und dieser dann am Ende der Zeile angefügt wird? Gruss Tom
Thomas schrieb: > Ist es auch möglich Nein das ist völlig unmöglich und ausgeschlossen... Thomas schrieb: > Und dann der LRC ... oder doch nicht? ;-) Ihr werdet doch wohl irgendwas im Unterricht behandelt haben... und das zählt!
:
Bearbeitet durch User
Läubi .. schrieb: > Thomas schrieb: >> Ist es auch möglich > > Nein das ist völlig unmöglich und ausgeschlossen... nur zur Erläuterung. Wenn man sowas macht, leitet man sofort und unmittelbar den Weltuntergang ein. :-) Möglich ist alles, was du dir ausdenken kannst! Der Empfänger muss rausfinden können, welches die Checksumm-Bytes sind. Das ist deine einzige Einschränkung.
:
Bearbeitet durch User
Thomas schrieb: > Ist es auch möglich dass der LRC für eine Anzahl Zeichnblöcke berechnet > wird und am Schluss angefügt wird? Und was machst du wenn nur ein Block gesendet wird? Wie Loriot sagt: ein Leben ohne Mops ist möglich. Aber sinnlos. Also möglich ja, sinnvoll nein. Unterschiedliche Messagelängen sind nur möglich, wenn z.B. ASCII-kodiert wird und die Prüfsumme extra gekennzeichnet, bei Intel Hex etwa durch ":". Der Empfänger muss ja wissen, wo die Prüfsumme anfängt. Gruss Reinhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.