Hallo, vielleicht könnt ihr mir helfen. Mein Problem ist, das ich zum einen einen Float Wert im Bereich von -x bis +x nach Interger -32768..32767 und umgekehrt wandeln möchte, aber nicht weiß wie ich das realisieren soll. Steh da grad auf dem Schlauch. Und Nein, es ist keine Hausaufgabe..... Gruß Anfänger
Sven B. schrieb: > Durch x teilen und dann mit 32768 multiplizieren. Gibt bei +x einen Überlauf. Besser mit 32767 multiplizieren.
Aber erst mit 32768 Multiplizieren(=shift left 15), und dann teilen. Moeglicherweise hast du gar nicht so viele Stellen ... am Besten mit 32 bit integern rechnen. 32bit Integer haben 9 signifikante Stellen, waehrend 32 bit float nur 5-6 signifikante Stellen haben.
Zwölf M. schrieb: > Aber erst mit 32768 Multiplizieren(=shift left 15), und dann teilen. Einen float shiften? Nein, man multipliziert den einfach mit (x/32767.0). Wie oben schon erwähnt wurde, ist 32768 eh problematisch. > Moeglicherweise hast du gar nicht so viele Stellen ... am Besten mit 32 > bit integern rechnen. Ob das sinnvoll ist, hängt vom (hier nicht bekannten) Wert von x ab. > 32bit Integer haben 9 signifikante Stellen, > waehrend 32 bit float nur 5-6 signifikante Stellen haben. 32-Bit-Integer haben 9 Stellen. Wie viele davon signifikant sind, hängt vom genutzten Wertebereich ab.
Zwölf M. schrieb: > 32 bit float nur 5-6 signifikante Stellen Der gewünschte Zielbereich hat auch nur 5 signifikante Stellen.
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.