Hallo Martin,
Variablen A, B, und C haben einen Multiplikator:
Mult_A = 0xFFFFFF (dezimal 16777215)
Mult_B = 0xFFFF (dezimal 65535)
Mult_C = 0xFF (dezimal 255)
das ist ungewöhnlich! Üblich wäre MULT_A = 0x1000000, MULT_B = 0x10000 usw. aber gut, es geht auch so.
Es handelt sich bei den Variablen um 8-Bit Hexadezimal-Werte (0x00-0xFF bzw. dezimal 0-255).
Dann ist allerdings der Wertebereich der Summe eingeschränkt. Bestimmte Zahlen sind so nicht darstellbar. Z.B. der Bereich 65281 bis 65534. Beispiel:SUM=65280=255⋅MULT_C+255A=0, B=0, C=0xFF, D=0xFFSUM=65281= ?SUM=65535=1⋅MULT_B+0⋅MULT_C+0A=0, B=1, C=0, D=0
Wenn die Summe gegeben ist, so teile diese mit Divisionsrest durch die Multiplikatoren. Beginne dabei mit dem größten Multiplikator. Der Parameter ist das Ganzzahlergebnis dieser Multiplikation und der Divisionsrest ist die neue Summe, die wieder durch den nächsten Multiplikator dividiert wird. usw.
Am Beispiel von 227887320:Sum227887320978352518810195M16777215655352551⌊Sum/M⌋13149731950x0D0x950x490xC3Die neue Summe si+1 ist immer si+1=si−Mi⋅⌊Misi⌋Melde Dich bitte, wenn etwas unklar ist. Und es wäre interessant zu erfahren, wie Du zu diesen 'Multiplikatoren' kommst!
Gruß Werner