PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wertebereich [-1.0;1.0[ in einen 8 bit double...



hoepfa
20-02-2007, 07:53
Hallo zusammen,

hab ein kleines, sagen wir größeres, Problem.

Ich suche nach einer Möglichkeit den Wertebereich [-1.0;1.0[ in 8 bit zu quetschen. Hab aber leider absolut keinen Plan wie ich das machen soll.

Kann wer helfen?

Thomas Engelke
21-02-2007, 09:02
In welcher Granularität? Einzelne oder doppelte Präzision?

hoepfa
21-02-2007, 09:05
Einfache ist völlig ausreichend.

Thomas Engelke
21-02-2007, 09:51
Wenn du Basis 10 annimmst, so wirst du wohl mit 8 bit keine einfache Genauigkeit erreichen können. Einfache Genauigkeit benötigt ja bereits für den Exponenten 8 bit. Dabei hilft deine Einschränkung auf -1 bis 1 nicht, da dies ja nur über die Mantisse geregelt wird.

Du mußt dir im Klaren sein, daß 8 Bit nunmal nur 256 verschiedene Zustände ausdrücken kann. Schaff' dir doch im Zweifelsfalle eine Skala mit allen Werten, die du zwischen -1 und 1 ausdrücken willst und mappe sie direkt auf die einzelnen Zustände der 8 Bit.

hoepfa
22-02-2007, 06:45
Danke Thomas für den Denkanstoß. Ich wusste doch das da mal was war...Gott schmeiss Hirn vom Himmel!

Allerdings muss ich sagen das sich das Problem selbst geregelt hat. Es handelte sich um eine, sagen wir mal, ungenaue Formulierung in der Spezifikation. Die benötigten Werte werden als ein signed char gesetzt. Der daraus resultierende Wertebereich von [0;127] (entspr. [0;1.0]) und [-128;-1] (enstpr. [-1.0;0]) wird benötigt. Der ursprünglich angenommene Bereich spiegelt lediglich die möglichen Zahlenwerte in der komplexen Ebene wieder. Ein kleiner Nebensatz in der Spec vermeidet zukünftige Missverständnisse.

Aber Danke nochmals, es hat v.A. mir geholfen mich an manche Dinge zu erinnern.

m.