MUL
MULS
MULSU
Sag ich doch immer wiederzumindest steht der beim Mega8 mit dabei.
So ein Datenblatt macht schon was her
Schon wieder was neues gelernt
Gruß Sebastian
EDIT: Scheint aber nur bei den Megas zu sein.
Ich habe da so grundsätzlich meine Zweifel ob ein schlauer Controller dem binären Zahlensystem mehr oder andere Werte entlocken kann als ein dummer1. Soll das etwa heissen, dass mein ATMEL zu "dumm" ist um diverse Trigonometrische funktionen GENAU auszurechnen?
Mit einer Auflösung von x Bit lassen sich nunmal nur 2^x Werte darstellen, egal wie schlau man sich anstellt.
Dann hoffe ich mal, dass du dich nicht irgendwann wundern musst, dass der dieselben Rechenfehler einfach nur etwas schneller machtHuiuiui.... Am Schluss muss ich das noch mit dem PC machen!
MUL
MULS
MULSU
Sag ich doch immer wiederzumindest steht der beim Mega8 mit dabei.
So ein Datenblatt macht schon was her
Schon wieder was neues gelernt
Gruß Sebastian
EDIT: Scheint aber nur bei den Megas zu sein.
Wikipedia sagt: http://de.wikipedia.org/wiki/GleitkommazahlZitat von surfer
... bilden die Gleitkommazahlen eine endliche Arithmetik, die vor allem im Hinblick auf numerische Berechnungen mit Computern entwickelt wurde. Dort dienen die Gleitkommazahlen meist als rationale Näherungen für reelle Zahlen.
Prostetnic Vogon Jeltz
2B | ~2B, That is the Question?
The Answer is FF!
deshalb wird er wohl nicht so oft verwendet.Zitat von izaseba
Müsste man mal probieren, ob der GCC diesen verwendet, und ob man dazu die richtige C-Formel zusammenbringt.
Hi all,
Das Problem mit den Rechenfehlern ist ein systematischer Fehler, der vom verwendeten binären Zahlensystem verursacht wird. Bei einer Umwandlung der Zahl 80 in eine Gleitkommazahl wird die 80 in 0.8 x 10e2 umgewandelt.Zitat von linux_80
Nach IEEE 754 ( http://de.wikipedia.org/wiki/Flie%C3%9Fkommazahl ) wird eine Gleitkommazahl im Singleformat mit 23Bit Mantisse und 8Bit Exponent dargestellt.
Die 0.8 wird in 11001100110011001100110 00000010 umgewandelt (0.79999995231 -> 79.999995231).
Binär gesehen ist 0.8 eine irrationale Zahl. Damit ist der Rechenfehler schon vorprogrammiert ohne Chance korrigiert werden zu können.
Grüße Klaus
Eine verrückte Idee ist besser als keine
Bei Verwendung von float hast du bei den angegebenen Werten einen relativen Fehler von ca 1.7*10^{-8} \approx 2^{-25}. Bei 23 Bit Mantisse codiert das niederwertigste Bit für 2^{-24}, also besteht kein Anlass zur Sorge.Zitat von surfer
avr-gcc unterstützt intern nur float (1 Sign, 23 Mant, 7 Expo). Auch Verwendung von double hilft nicht weiter, da die libgcc2 für avr-gcc nur für SFmode (float) generiert ist. Verwendung von double bringt lediglich Overhead beim Umwandeln und mehr Speicherverbrauch. Falls du höhere Genauigkeit benötigst, dann
- Benötigst du überhaupt höhere Genauigkeit? Oder ist es ein ästhetisches Problem?
- eigene Bibliothek implementieren: Unterstützung für
-- double (1 Sign, 56 Mant, 11 Expo) oder
-- long double (1 Sign, 64 Mant, 15 Expo)
-- floats nach eingenem Gusto
-- Fixpunkt-Arithmetik nach eigenem Gusto
-- exakte Arithmetik nach eigenem Gusto (ganze Zahlen, rationale Zahlen oder Erweiterungskörper von Q)- eigene Version von avr-gcc generieren, die double bzw long double unterstützt. Die Quellen hast du
Dazu müssen Anpassungen im GCC-Backend für AVR gemacht werden.- entsprechende Bibliothek besorgen (kaufen / in Auftrag geben), CA-System (Computer-Algebra)
sprintf() ist ANSI-C, die %-Modifier müssen zu den Typen passen. Wenn du mit % einen 8-Byte-Wert angibst, lieferst aber nur 4 Bytes ab, dann sei froh, daß du einen Compilezeit-Fehler/Warnung bekommst, und nicht einen Laufzeitfehler wegen Stapel-Korruption!
Was bitte meinst du mit *GENAU*???Zitat von surfer
Ein Rechner ist bestenfalls so schlau wie das Programm, das auf ihm läuft
Wie sieht eine genaue Darstellung von sin(1) deiner Meinung nach aus?
Bist du dir klar über die mathematischen/algorithmischen Grundlagen von dem, was du tun willst?
Disclaimer: none. Sue me.
Wie groß ist den PI genau ?Zitat von surfer
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Naja, so ungefähr:Wie groß ist den PI genau ?
akustische Darbietung der 100 Nachkommastellen der Zahl Pi!
http://www.aip.de/~wasi/PI/AUDIO/pi100.ram
Warum solche Umstände?Zitat von PicNick
PI ist 3,2.
Disclaimer: none. Sue me.
@Sprinter:
Räum den Link lieber weg, bevor das irgendein EU Abgeordneter sieht und auf blöde Gedanken kommt.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen