Guten Tag,
ich programmiere gerade eine Festkommadarstellung in 32bit. Ich brauche
3 Vorkomma- und 2 Nachkommastellen(10 Vorkommabits, 22 Nachkommabits).
Zur Ausgabe habe ich mir diese kleine Routine geschrieben. Diese
funktioniert soweit auch, allerdings werden Zahlen <0,1 falsch
ausgegeben. Wenn ich einfach mal mit einer For-Schleife alle Zahlen
durchprobiere, fängt die Ausgabe bei 0,1 an und nicht bei 0,01. Ich
finde allerdings den Fehler einfach nicht. Hat hier jemand mit mehr
Erfahrung eine Idee?
Grüße
Klaus
1 | void printInt(int data)
|
2 | {
|
3 | int Vorkomma = (data & 0xFFC00000) >> 22;
|
4 | int Nachkomma = data & 0x3FFFFF;
|
5 | Nachkomma = ((Nachkomma * 100) + (2097152)) / 4194304;
|
6 | printf("%d,%d\r\n", Vorkomma, Nachkomma);
|
7 | }
|