www.mikrocontroller.net

Forum: PC-Programmierung IEEE754: Rundung und Exceptions


Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich werd aus dem Standard nicht so recht schlau. Folgendes Situation:
Wenn ich zwei (noch normalisierte) Fließkommazahlen mit verschiedenen 
Exponenten addiere, muss die betragsmäßig kleinere von beiden ja 
denormalisiert werden (nach rechts schieben, Exponent erhöhen), bis die 
Exponenten übereinstimmen.

(Großbuchstaben = größere Zahl, die '1' vornean ist das implizite Bit)
Vorher:
1AAAAAAAABBBBBBBBCCCCCCCC          *2^EE
1aaaaaaaabbbbbbbbcccccccc          *2^ee  z.B. mit ee = EE-2

Nachher:
1AAAAAAAABBBBBBBBCCCCCCCC          *2^EE
001aaaaaaaabbbbbbbbcccccccc        *2^(ee+2)  ee+2 ist EE, also gleich
Nun kann addiert werden.

Dabei frage ich mich:
Die beiten letzten Bits der kleinen Zahl (die zwei überstehenden cc 
rechts), die gingen ja jetzt normalerweise verloren. Würde das schon zu 
einer /Inexact/-Ausnahme führen?

Und weiter: Zur Rundung schlägt der Standard vier Modi vor: nach +Inf, 
nach -Inf, zur nächsten darstellbaren Zahl und nach 0. Wie soll das 
funktionieren? Ich kann mir da auch nach umfangreicher Lektüre der 
Drafts zu IEEE754 und IEEE754R keinen Reim darauf machen.
Dort heißt es, die Rechnung sei so durchzuführen, als wären beide 
Operanden von unendlicher Genauigkeit -- klingt gut, aber wie soll das 
aussehen? Mehr Genauigkeit i.S.v. niederwertigeren Bits bekomme ich im 
Beispiel oben nur von der kleineren Nummer (die cc rechts), nur dort 
stimmen die Stellen der größeren Zahl ja schon nicht mehr (wären ja 
Null, so weit reicht die Mantisse ja nicht).

Bin dankbar für jeden Tipp!

Vielen Dank und Gruß,
Kama

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.