Gast
#622454
Hallo,
ich möchte mit Hilfe einer C-Funktion eine 2er-Komplement-Zahl in eine
float-Zahl umrechnen. Ich habe es mit folgender Funktion versucht :
float ZweierKomToFloat(int Zahl)
{
xdata int Hilfsvariable, Vorzeichen;
xdata float Ergebnis;
Hilfsvariable = Zahl;
Hilfsvariable >>= 15;
if(Hilfsvariable == 0)
{
Ergebnis = Zahl;
return(Ergebnis);
}
Vorzeichen = 0x10000000000000000000000000000000;
Hilfsvariable = Zahl;
Hilfsvariable -= 1;
Hilfsvariable =~ Hilfsvariable;
Hilfsvariable += Vorzeichen;
Ergebnis = (float)Hilfsvariable;
return(Ergebnis);
}
Bei der Berechnung des Wertes und der Dimension funktioniert auch alles,
nur das Vorzeichen wird nicht korrekt dargestellt. Hat jemand eine Idee,
wie ich das lösen kann? Ich benutze den C51-Compiler von Keil
(µVision3).
Danke schonmal für die Hilfe.