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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 26

Thema: 2 Stellige INT-Zahl auflösen in zehner und einer Stelle (INT)

  1. #1
    Registriert seit
    26.10.2009
    Ort
    Teltow
    Beiträge
    23
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    cpu 315 2dP

    hallo, folgendes Problem

    ich hab in einer datenbank einen zweistelligen wert stehen (INT)

    z.B. 12

    nun soll diese zahl aufgelöst werden..

    als ergebis gibt es dann zwei neue datenbank einträge.

    einmal die 10er-Stelle und natürlich noch die 1er Stelle.

    wie kann ich das am besten bewältigen ??

    danke schonmal

    Sascha
    Zitieren Zitieren 2 Stellige INT-Zahl auflösen in zehner und einer Stelle (INT)  

  2. #2
    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

    modulo ...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Avatar von Bonsai-San
    Bonsai-San ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.10.2009
    Ort
    Teltow
    Beiträge
    23
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für den Tip

    Das werde ich morgen gleich mal probieren

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Oder BCD-wandeln und die einzelnen Byte auslesen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #5
    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

    Zitat Zitat von Ralle Beitrag anzeigen
    Oder BCD-wandeln und die einzelnen Byte auslesen.
    nee, oder?
    die einfachste modulo operation ist die /I

    Code:
    *
          L     "Zahl"
          L     10
          /I    
          T     MD    10
    
          L     MW    10
          T     "Einer"
          L     MW    12
          T     "Zehner"
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    Bonsai-San (06.07.2010)

  7. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    und der Ansatz von Ralle ist da komplizierter ???
    Code:
          L     "Zahl"
          ITB
          T     MW    10
    
          L     MB    10
          T     "Einer"
          L     MB    11
          T     "Zehner"

  8. Folgende 2 Benutzer sagen Danke zu Larry Laffer für den nützlichen Beitrag:

    Bonsai-San (06.07.2010),vierlagig (18.06.2010)

  9. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Hallo, der Optimierer mal wieder

    Die Idee mit dem BCD-Umwandeln hatte ich gestern auch schon, doch da muß man ja noch relativ
    umständlich die Nibbles trennen.
    Code:
          L     "INT_Zahl"
          ITB
          PUSH
          UW    W#16#F
          T     "INT_Einer"
          POP
          SRW   4
          T     "INT_Zehner"
    Die "Modulo"-Division ist da doch kürzer. Ich würde aber keine Schmiermerker benutzen.
    Code:
          L     "INT_Zahl"
          L     10
          /I    
          T     "INT_Zehner"
          SRD   16
          T     "INT_Einer"
    Es muß natürlich sichergestellt sein, daß "INT_Zahl" nur Werte von 0 bis 99 enthält.

    Gruß
    Harald

  10. Folgende 3 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    Blockmove (18.06.2010),Bonsai-San (06.07.2010),vierlagig (18.06.2010)

  11. #8
    Avatar von Bonsai-San
    Bonsai-San ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.10.2009
    Ort
    Teltow
    Beiträge
    23
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hallo
    danke für die tipps

    hab es unoptimiert gelöst ;O)
    Code:
          L     #Koordinate
          ITB   
          T     #Zwischemspeicher
          L     #Zwischemspeicher
          L     W#16#F
          UW    
          T     #Koordinate1er
          L     #Zwischemspeicher
          L     W#16#F0
          UW    
          SRW   4
          T     #Koordinate10er
    na sieht doch fast so aus ;O)
    inkl schreibfehler seh ich gerade..

  12. #9
    Registriert seit
    05.07.2010
    Beiträge
    148
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi ihr Rechenkünstler, wie erklärt sich denn der Code?

    Zitat Zitat von vierlagig Beitrag anzeigen
    die einfachste modulo operation ist die /I

    Code:
    *
          L     "Zahl"
          L     10
          /I    
          T     MD    10
     
          L     MW    10
          T     "Einer"
          L     MW    12
          T     "Zehner"
    Angenommen ich habe ein INT-Zahl 35, dann wird die ja durch 10 geteilt, was 3,5 ergibt. Aber INT-Zahlen sind doch Ganzzahlen - wird dann im MD10 (bzw. im MB13) nur die 3 gespeichert?
    L.G. schnecke

  13. #10
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von schnecke Beitrag anzeigen
    Angenommen ich habe ein INT-Zahl 35, dann wird die ja durch 10 geteilt, was 3,5 ergibt. Aber INT-Zahlen sind doch Ganzzahlen - wird dann im MD10 (bzw. im MB13) nur die 3 gespeichert?
    ja, richtig erkannt, ganzzahlen.
    im akku1 (breite 32 bit) wird im low-word (16bit, was einem INT entspricht) der ganzzahlige quotient abgelegt und im high-teil (auch 16bit) der divisionsrest.
    mit T in ein doppelwort wird der gesamte akku1 in den speicherbereich übertragen.
    der speicherbereich MD10 setzt sich ja aus den MB10,11,12,13 bzw. aus den MW10 und 12 zusammen, womit man so komfortabel an ganzzahligen quotienten und divisionsrest heran kommt...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. Bit bei Max einer Zahl setzen
    Von MK_Auto im Forum Simatic
    Antworten: 54
    Letzter Beitrag: 20.12.2010, 23:42
  2. Anzeige einer Real-Zahl
    Von Azuel im Forum HMI
    Antworten: 2
    Letzter Beitrag: 02.03.2010, 15:18
  3. DB aus einer Zahl aufrufen !
    Von scrabble im Forum Programmierstrategien
    Antworten: 5
    Letzter Beitrag: 02.07.2008, 09:51
  4. 5-stellige ascii zahl in normale zahl umwandeln
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.01.2006, 16:12
  5. Vorbelegung einer Zahl mit Nullen
    Von INST im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 10.02.2005, 09:00

Stichworte

Lesezeichen

Berechtigungen

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