Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: REAL Zahlen addieren

  1. #11
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich kann aus Deiner Erklärung die Formel
    2^x * 2^-(m+1)=e
    nicht herleiten.
    Und ich kann die Erklärung "Das niederwertigste Bit in der Mantisse hat dann die Wertigkeit 1/2^-(m+1)=1/2^24" nicht nachvollziehen. Warum muss ich hier 1/... rechnen?
    Warum m+1 ist habe ich verstanden.

  2. #12
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Stimmt, da habe ich ein paar Zwischenschritte weggelassen.


    Die Formel wie sich eine Gleitkommazahl aus Exponent und Mantisse zusammensetzt, wenn in der Mantisse nur ein Bit m gesetzt ist lautet:

    2^x * (1 + 2^-(m+1)) = e

    mit:
    x = Exponent (ohne Bias)
    m = Bitposition in der Mantisse
    e = Gleitkommawert


    Jetzt suche ich die Differenz zwischen zwei Gleitkommazahlen bei denen einmal
    in der Mantisse nur das letzte Bit gesetzt, und einmal gar kein Bit gesetzt ist. Das ist der kleinstmögliche Unterschied (d) zwischen zwei Gleitkommazahlen bei gleichem Exponenten.

    Als Formel aufgestellt:
    2^x * (1 + 2^-(23+1)) - 2^x * (1 + 0) = d

    Vereinfachen und umstellen:
    2^x * (1 + 2^-(23+1)) - 2^x = d

    (1 + 2^-(23+1)) ersetze ich der Einfachheit halber durch K:

    2^x * K - 2^x = d

    Ausklammern von 2^x:
    2^x * (K - 1) = d

    Umstellen nach x:
    x = lb (d / (K - 1))

    Jetzt für K wieder (1 + 2^-(23+1)) einsetzen:
    x = lb (d / (1 + 2^-(23+1)) - 1))

    Die 1 fällt weg, 23+1 ausrechnen:
    x = lb (d / 2^-24)


    Die Differenz soll min. 0,025 sein:

    x = lb (0,025 / 2^-24)
    x = 18,67

  3. Folgende 3 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Blockmove (13.08.2013),Ninja2602 (14.08.2013),vollmi (13.08.2013)

  4. #13
    Registriert seit
    06.10.2003
    Beiträge
    3.413
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard

    Hallo Ninja,

    bilde doch einfach mit deinen Realwerten eine Summe. Wenn diese Summe den Wert 1.0 übersteigt, zählst du ein DINT hoch und subtrahierst von der Realsumme den Wert 1.0. Damit kommst du ein ganzes Stück weiter, ohne Verlust an Genauigkeit. Jopp meinte es im Beitrag 7 vermutlich ähnlich.


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  5. #14
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @ Thomas_V2.1: Danke für die Erklärung.

    @ Onkel Dagobert: Das Gesamtvolumen wird an mehreren Stellen verwendet, die Gefahr das ich eine vergesse und dann eine Stelle was falsches anzeigt oder rechnet ist hoch. Habe das Gesamtvolumen wieder auf Null gesetzt, jetzt dauert es wieder ein zwei Jahre bis das Gesamtvolumen so hoch ist das das ungenau wird oder gar nicht mehr mit 0,025 rechnet.

  6. #15
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Ich würde eventuell in einem DINT die Impulse oder Ereignisse zählen (d.h. immer 1 dazuzählen, wenn du das Volumen zum Real addieren würdest). Danach dieses DINT mit dem Volumen multiplizieren, ergibt Gesamtvolumen zur Verwendung an mehreren weiteren Stellen.

  7. #16
    Registriert seit
    03.07.2006
    Beiträge
    1.725
    Danke
    515
    Erhielt 303 Danke für 223 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @ Thomas_V2.1 wenn ich mal Hilfe in Berechnungen benötige weiß ich jetzt wo ich fragen kann

Ähnliche Themen

  1. Probleme beim Zahlen Addieren
    Von sonic_229 im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 09.08.2011, 15:28
  2. Fehler beim addieren von Real-Werten
    Von Züttu im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 01.07.2011, 15:31
  3. Addieren Real
    Von Emilio im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 21.12.2007, 13:37
  4. Mittelwertbildung aus REAL Zahlen
    Von Waelder im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 09.01.2006, 00:46
  5. OP-15 REAL Zahlen darstellen
    Von klauserl im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.10.2005, 18:04

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •