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

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

Thema: REAL auf INT wandeln

  1. #11
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    673
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @4l: das funktioniert auch in der Praxis. Schau dir mal die Datenbereich eines Integers an...

  2. Folgender Benutzer sagt Danke zu SPSKILLER für den nützlichen Beitrag:

    vierlagig (14.07.2008)

  3. #12
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Zitat Zitat von neibeck Beitrag anzeigen
    ich hab mir das ganze jetzt mal durchgelesen und hab dann folgendes gefunden:


    Code:
    L MD 10    //REAL-Zahl 
    RND                  //runden 
    L DW#16#7FFFFFFF 
    UD                   //DW-und 
    T MD 2             //als DW speichern
    //vorzeichenrichtige Zahl liegt in MW4
    was genau bringt die UND-Verküpfung mit lauter Einsen? da kommt im Endeffekt ja wieder die selbe Zahl raus wie vor dem Vergleich oder?

    Das richtige Ergebnis der INT-Zahl liegt dann praktisch in der zweiten Hälfte des MD2 oder?

    mfg
    wo hast Du den das her?

    na, ja, wenn Du dann die zweite Hälfte des MD2 nimmst (das wäre dann MW4) ist das der richtige Integerwert. wofür zuvor aber dann das abschneiden, was sich etwas irreführend Vorzeichenbit nennt?

  4. Folgender Benutzer sagt Danke zu Perfektionist für den nützlichen Beitrag:

    vierlagig (14.07.2008)

  5. #13
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    siehe hier: http://www.sps-forum.de/showthread.php?t=19427&page=2

    bei mir funktioniert der direkte Weg also Real mit RND direkt auf INT speichern nur bei positiven Zahlen...

    bei negativen nicht...


    EDIT: Ich werd bekloppt... Plötzlich funktionierts tatsächlich...
    Geändert von neibeck (14.07.2008 um 15:39 Uhr)

  6. #14
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Zitat Zitat von neibeck Beitrag anzeigen
    Edit: Ich Werd Bekloppt... Plötzlich Funktionierts Tatsächlich...
    *stoss-seufz*

  7. #15
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    so, öhm, ich geb mich geschlagen ... das problem liegt da wohl in meinem verqueren denken das zweierkomplement betreffend ... es ist zwar das erste bit, welches das vorzeichen bestimmt aber die zahl ist ja an sich schon negiert und um eins erhöht, dass heißt, dass vorzeichen steht, wenn die zahl im INT-wertebereich ist natürlich auch schon da ...

    man lernt nie aus ... danke, dass ich nochmal drüber nachdenken durfte!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #16
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    kann mir jemand erklären WARUM das so funktioniert?
    32Bit zahl in 16Bit Variable schreiben...

  9. #17
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Also, ich habe gerade mal mein SCL dazu befragt (SCL kennt immerhin eine Funktion REAL_TO_INT). Hier lautet das Ergebnis im Code auch schlicht und (un-)ergreifend :
    Code:
    L Real_Var
    RND
    T Int_Var
    wobei sich ja um Wertebereichsgrenzen ja auch im Vorfeld gekümmert worden sein müßte ...

    Gruß
    LL

  10. #18
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    eine 32bit ganzzahl umfaßt, wie der name schon sagt, 32bit, die 16bit entsprechend 16.

    ist die 32bit zahl kleiner gleich dem wertebereich der 16bit-ganzzahl kann man diese in den bereich einer 16bit zahl schreiben, das andere wort wird einfach abgeschnitten.

    bei der negativen zahl handelt es sich um eine zahl im zweierkomplement und daher kann sie genauso wie eine positive im wertebereich der 16bit zahl behandelt werden. wichtig ist hier das erste bit, da steht das vorzeichen drin ... die erklärung dazu findest du in meinem letzten beitrag ...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  11. #19
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.235
    Danke
    642
    Erhielt 955 Danke für 769 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Also, ich habe gerade mal mein SCL dazu befragt (SCL kennt immerhin eine Funktion REAL_TO_INT). Hier lautet das Ergebnis im Code auch schlicht und (un-)ergreifend :
    Code:
    L Real_Var
    RND
    T Int_Var
    wobei sich ja um Wertebereichsgrenzen ja auch im Vorfeld gekümmert worden sein müßte ...

    Gruß
    LL
    Ist ja auch logisch. Bei einer 32-Bit-Zahl ist das Vorzeichen in Bit 31, bei einer 16-Bit-Zahl in Bit 15. Durch das Zweierkomplement sind aber alle oberen und unbenutzten Bits 1. -1 ist zum Beispiel 0xFFFFFFFF als 32-Bit-Zahl und 0xFFFF als 16-Bit-Zahl. Wenn somit der Wertebereich von -32768 (= 0xFFFF8000) und 32767 (= 0x00007FFF) nicht überschritten wird, kann einfach obige Zuweisung erfolgen. Andernfalls steht sowieso Müll drin.
    Ich kann nur jedem Konvertierer empfehlen, sich mit den Zahlen und deren internen und externen Darstellung zu befassen.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  12. Folgender Benutzer sagt Danke zu Rainer Hönle für den nützlichen Beitrag:

    vierlagig (14.07.2008)

Ähnliche Themen

  1. REAL in TIME wandeln in SCL
    Von zloyduh im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 17.03.2011, 22:24
  2. Float in Real wandeln - SCL
    Von Gerri im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.07.2010, 15:29
  3. Real in INT wandeln? & Liste der SFC/SFB?
    Von HSThomas im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 23.03.2010, 16:22
  4. real in ein word wandeln
    Von Dip im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.08.2009, 11:35
  5. von Real nach Integer wandeln
    Von tuppes38 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 27.09.2005, 18:41

Lesezeichen

Berechtigungen

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