Dividieren von Ganzzahlen ?

sk1rie

Level-1
Beiträge
108
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo !

Nachdem ich meine Ausbildungsunterlagen und die Hilfe sehr bemüht habe, bin ich leider noch immer nicht zu der Erkenntnis gekommen, wie mein Rechenergebnis nun wirklich aussieht und wie ich es weiterverarbeiten kann.
Daher bitte ich Euch mal um Hilfe:

Ich zähle die Sekunden einer Stunde zusammen und erhalte damit als maximalen Wert 3600 als INT. Daraus möchte ich mir die Minuten der Stunde errechnen.
Wenn der Sekundenwert ein Vielfaches von 60 ist, ist das Ergebnis sehr eindeutig. Was jedoch, wenn der Wert "ungerade" ist ?

Als Beispiel:

3599:60=59.98333333333

Das Ergebnis steht im Akku 1, Low-Byte = Quotient (59); High-Byte = Rest (59)

In meinem Beispiel möchte ich jetzt den Quotienten in einen DB verschieben. Wie jedoch kann ich denn ausschließlich auf den Quotienten zugreifen, ohne den Umweg über ein Merkerwort zu machen ?

Ich möchte also das AKKU1-L laden/verarbeiten. Gibt es einen Befehl dazu ?

Wo kann ich mögliche AKKU-Operationen und Manipulationen übersichtlich zusammengefasst nachlesen ?

Danke für Eure Hilfe
 
wandle sie in real

DTR (Dinterger to Real)

und runde sie mit RND

dann wieder zurück in DInteger RTD
 
Zuletzt bearbeitet:
Code:
L  #wert1
L  #wert2
/I
T  DB1.DBW0     //Hier steht der Quotient
SRD  16        //Schiebe Akku 1-H in Akku 1-L
T  DB1.DBW2    //Hier steht der Rest
 
wandle sie in real

DTR (Dinterger to Real)

und runde sie mit RND

dann wieder zurück in DInteger RTD

^^diesen Befehll gibts doch garnicht ...

Aber was ich vergessen habe, zu erwähnen, ist, dass ich eine möglichst kurze Lösung dafür suche. Über Umwege komme ich ja auch zum gewünschten Resultat, jedoch will ich mich ja verbessen ;)


/Danke OHGN, hab wohl ein wenig beim Antworten gepennt ... :)
 
Zuletzt bearbeitet:
^^diesen Befehll gibts doch garnicht ...

Aber was ich vergessen habe, zu erwähnen, ist, dass ich eine möglichst kurze Lösung dafür suche. Über Umwege komme ich ja auch zum gewünschten Resultat, jedoch will ich mich ja verbessen ;)


/Danke OHGN, hab wohl ein wenig beim Antworten gepennt ... :)


DTR // Dint to Real

rnd // RUnden einer Gleitpunktzahl zur Ganzzahl
 
Ich meinte eigentlich mit dem obigen Beitrag:

Wenn man mit Integers arbeitet, sollte man auch die Integerarithmetik
verwenden, mehr nicht. Dann gibt es auch keine Rundungsfehler !

Hatte mal einen Fall wo in INTs vorliegende Zeiten in Real gewandelt und anschließend auf Gleichheit gecheckt wurden (besser: werden sollten)...:ROFLMAO:
 
Zuletzt bearbeitet:
Ich glaube, die Version von OHGN ist die Beste für mich. Hab sie auch direkt schon eingebaut.
Mich erstaunen aber die vielen Wege, die zum Ergebnis führen ... :roll:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mich erstaunen aber die vielen Wege, die zum Ergebnis führen ... :roll:

wieso erstaunen? das ist nun mal das schöne daran, jeder kann die lösung für sich herausnehmen, die ihm am besten gefällt. so könntest du z.b. auch mit /I in ein wort schreiben und die rest sekunden mit der modulo-operation ermitteln ...
 
Mich erstaunen aber die vielen Wege, die zum Ergebnis führen ... :roll:

warum sollte es denn immer nur einen weg geben? wäre doch langweilig...
an der anzahl der lösungen siehst du, das das denkverhalten bei jedem anders ist.viele wege führen ans ziel....
selbst wenn ich eine "lösung" habe passiert es das ich noch länger nach was besserem suche...
4l hat mich letztes jahr noch mehr in die richtung geschubst....
danke 4l
 
Schnellste Variante dürfte diese sein:

Code:
      L     #iWert1
      L     #iWert2
      /I    
      T     #iQuotient                  // Hier steht der Quotient
      TAD                               // Aus LL, LH, HL, HH wird HH, HL, LH, LL.
      TAW                               // Aus LL, LH wird LH, LL.
      T     #iRest                      // Hier steht der Rest
 
Zurück
Oben