Wenn es extrem schnell gehen soll, auf 0-255 normieren (d.h. nur die
oberen 8 Bit nehmen) und über eine Tabelle mit 256 Bytes im Flash auf
0-99 um-"rechnen".
Ansonsten die Rechenoperation Obere_8_Bit / 255 * 99 so umformen, dass
aus dem Multiplikator 99 / 255 etwas wird, bei dem der Nenner eine
2er-Potenz ist, damit die Division zum Bitshift wird - z.B. Ergebnis
=(Obere_8_Bit * 99L + 128) >> 8. Der Term "+ 128" dient der Rundung (ich
gehe davon aus, dass alles unsigned ist, deshalb +) und >>8 entspricht
einer Division durch 256, was nahe genug an 255 ist.
Die Multioplikation ist dann der einzige rechenintensive Teil - und
ATmegas haben eine schnelle Hardware-Multlikation. Zwar nur 8bit, aber
die verwendet der Compiler auch für 8bit x 16bit.