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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Gleitpunktzahl zerlegen

  1. #1
    Registriert seit
    02.02.2007
    Beiträge
    4
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    das Thema gab es zwar schon einmal, aber hat so nicht funktioniert:
    Ich möchte eine Gleitpunktzahl getrennt als Mantisse und Exponent
    anzeigen, dabei soll die Mantisse auf eine Stelle vor und nach dem Komma
    begrenzt werden. Der Exponent mit Vorzeichen; alles zur Basis 10.
    Ich könnte das Ganze mit Vergleichen und Umrechnen gestalten,
    ist aber sehr umständlich;vielleicht gibts etwas Einfacheres.
    Ich arbeite mit Step7V5.3 und CPU315-2 DP.
    Viele Grüße, Heri
    Zitieren Zitieren Gleitpunktzahl zerlegen  

  2. #2
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    und da willst du dann 2 Integerwerte?

  3. #3
    Heri ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.02.2007
    Beiträge
    4
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ja, genau, hier auch der Vorschlag damals von Jochen Kühner:

    L ED 1 //Eingangswort
    L DW#16#7F800000 //maskieren des exponenten
    SRD 23
    T EXPONENT

    L ED 1
    L DW#16#7FFFFF
    T MANTISSE
    Zitieren Zitieren Gleitpunktzahl zerlegen  

  4. #4
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Ok, und was gefällt jetzt nicht?
    Ich bin heute offensichtlich bissel begriffsstützig....

  5. #5
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Aso, funktioniert nicht.... da fehlt sicher die Verundung mal... na ich schau mal kurz.

  6. #6
    Heri ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.02.2007
    Beiträge
    4
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    habe es nochmals probiert, die beiden Ergebnisse stimmen überhaupt nicht
    und ändern sich bei verschiedenen Eingangswerten auch nicht.

  7. #7
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    ja klar da fehlt das UD
    Code:
          L     ED     1                    //Eingangswort
          L     DW#16#7F800000              //maskieren des exponenten
          UD    
          SRD   23
          L     127
          -D    
          T     #EXPONENT
     
          L     ED     1
          L     DW#16#7FFFFF
          UD    
          T     #MANTISSE
    aber das löst leider das Problem noch nicht, die Mantisse ist so aufgebaut
    22es Bit 2^-1
    21es Bit 2^-2
    .
    .
    .
    0es Bit 2^-23

    wenn ich mal Zeit habe überlege ich es mir.

    Eine Gleitpunktzahl schaut so aus:

    1,Mantisse * 2 ^ (Exponent-127)
    Geändert von borromeus (30.07.2007 um 14:58 Uhr)

  8. #8
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Ok, funktioniert anders:

    Das ist mal der Exponent:

    Code:
       L     ED     1
          LN    
          L     2.302585e+000
          /R    
          RND-  
          T     #EXPONENT
    An der Mantisse arbeite ich noch...

  9. #9
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.255
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    So etwa funktioniert das:

    Code:
         L     ED     1
          ABS   
          LN    
          L     2.302585e+000
          /R    
          RND-  
          T     #EXPONENT                   //Exponent
          DTR   
          T     #W1                         //Tempvariable 
     
          L     1.000000e+001
          LN    
          L     #W1
          *R    
          EXP       //= 10 hoch Exponent
                      
          L     ED     1
         TAK
          /R    
          L     1.000000e+001
          *R    
          RND   
          T     #MANTISSE                   //10 x Mantisse als Integerzahl
    Die Mantisse wolltest Du in Integer mit einer Vor- und Nachkommastelle... also habe ich diese mit 10 multipliziert.

  10. Folgender Benutzer sagt Danke zu borromeus für den nützlichen Beitrag:

    Heri (30.07.2007)

  11. #10
    Heri ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.02.2007
    Beiträge
    4
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo borromeus,
    Deine Lösung funktioniert einwandfrei; werde mal versuchen,
    dies nachzuvollziehen.
    Vielen herzlichen Dank dafür !
    Viele Grüße, Heri

Ähnliche Themen

  1. C# Ganzzahl wandeln in Gleitpunktzahl IEEE 754
    Von sparx im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 13.11.2011, 19:55
  2. Gleitpunktzahl in ProTool anzeigen
    Von Fussel0804 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 21.02.2010, 09:02
  3. Gleitpunktzahl umrechnen
    Von alonely01 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.10.2008, 09:53
  4. Gleitpunktzahl zerlegen
    Von Lockerbee im Forum Programmierstrategien
    Antworten: 18
    Letzter Beitrag: 20.02.2007, 19:08
  5. Gleitpunktzahl negativ darstellen
    Von SPS-Starter im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 08.08.2006, 12:20

Lesezeichen

Berechtigungen

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