Zitat von
r2c2:
Hallo Khabarakh,
Zitat:
Festkommatypen haben einfach einen statischen Wertebereich, daran lässt sich nix ändern. Dass 0,25² bei einem Q6.2-Typen (also mit der Auflösung 0,25) im Nirvana verschwindet, liegt in der Natur der Sache. Kann ich diese Einschränkung nicht gebrauchen, greife ich zu Floats.
Du hast mein Argument noch nicht verstanden. Wenn ich keine FPU hab(wie z.B. auf nem DSP) bleibt mir nix anderes übrig, als auf Floats zu verzichten
Du hast mein Argument nicht verstanden: Es gibt nichts anderes (sinnvolles, s.u.) als Fixed Point und Float Point. Habe ich keine FPU, muss ich sie entweder emulieren (was wohl höchstens auf Taschenrechnern verkraftbar wäre) oder Fixed Point benutzen.
Zitat:
Delphi-Quellcode:
int1 := 8;
int2 := 8;
Shift := 0;
erg := int1 * int2;
// am Shift-Faktor ändert sich nix, da 0+0=0 ist...
Wo ist der Überlauf?
(Huppsala, eigentlich meinte ich 4² ^^, was aber irrelevant ist)Ich bezog mich auf dein 0,5-Beispiel, in dem 4 = 000100(,)00 wäre => Peng. Natürlich, mit einer geschickten Wahl des Shiftfaktors lässt sich der Überlauf verhindern, aber mit welchem Algorithmus soll dein Typ diesen am Besten ermitteln? Die Antwort ist schon gefunden: IEEE 754.
Zitat:
unkontrollierbar nicht, aber man muss extrem aufpassen. Da hast du Recht. So zu rechnen is nicht einfach.
Ich möchte es jedenfalls nicht benutzen *g* . Noch ein anderes Beispiel: 0,5.
Ganz egal, welchen Shiftfaktor ich wähle, spätestens nach achtfacher Multiplikation mit 1 (!) ist bei 8-Bit Schicht im Schacht.
Zitat von
r2c2:
- Festkomma ohne variablen Shift-Faktor: Mir fällt kein sinnvolles Einsatzgebiet ein
Auch wenn das Sparen der paar Bits pro Variable heutzutage wohl nicht mehr relevant ist, ist diser Thread hier doch ein schönes Beispiel. Bei Fixed Points mit Shift-Faktor und mehr als vier mathematischen Operationen würde Snuffmaster wohl durchdrehen, ich würde es ganz bestimmt
.
Es gibt sicher ein paar Anwendungsgebiete für "Shifted Fixed Points", aber da dabei wohl zu jeder Zeit die Anzahl der Operationen, die Wertebereiche aller Argumente bekannt sein müssen, sind die Gebiete
imho schon
ziemlich eingeschränkt.
Warum sonst sollte ein dem Dreidimensionalem durchaus mächtiger Handheld wie z.B. der Nintendo DS ausschließlich Fixed Point benutzen, wenn sich Grafikprogrammierer am PC eine Welt ohne Floatpoint gar nicht mehr vorstellen können (und ja, die Theorie der Fließkommazahlen steckt tief im Design heutiger PC-Engines)?