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
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
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
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
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
Modulo 256 versteh ich hier (damit nicht größer als 1 Byte), aber wieso muss dann noch das 2er Komplement gebildet werden ??
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.
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.