Ich habe die Restdivision mit Abrunden des Ergebnisses einer Division und Subtrahieren emuliert. Was haltet ihr davon?
2 Stimmen
2 Antworten
Ob das gut oder schlecht ist kommt auf die Hardware an.
Wenn es dafür einen eigenen Befehl gibt ist es schlecht weil unnötig.
Wenn du emulieren musst hängt es von den möglichen Zahlen ab und von sonstigen Eigenschaften in der Hardware ob das wirklich der Effizienteste Weg ist.
Es ist zumindest der naheliegenste.
Edit:
mir ist noch aufgefallen, dass du dafür jedenfalls Gleitkommaarithmetik benötigst was das ganze je nach Hardware extrem langsam macht. Eine Fixkomma Rechnung und die Divison hier beschleunigen das meist oder du überführst die Operation auf Ganzzahlen.
Dann geht es dir ja sowieso nicht um geschwindigkeit. In so fern ist es egal wie du es implementierst.
Also da ist alles gut was das korrekte Ergebnis liefert.
Hab mir gerade das nochmal durchüberlegt. Deine Rechnung bestimmt die Nachkommastellen nicht den Divisionsrest.
Bei der Operation 1/2 würd deine Rechnung 0.5 liefern. Der Rest ist aber 2.
Also der Rest ist ganzzahlig definiert.
Der Rest ist 1. Den erhält man, indem man das Ergebnis von 1/2 abrundet auf 0 und dann 1-0*2 rechnet. Leider hat der Platz nicht genügt, um die Rechnung richtig zu erklären.
Gut wenn du a-int(a/b) rechnest dann ist es der Rest ja.
Ich dachte du rechnest (a/b)-int(a/b)
Daher auch der Einwand mit der Gleitkommaarithmetik. Wenn du es wie oben rechnest hast du ja nur Ganzzahl Arithmetik.
a-int(a/b)*b ist als Notation deutlicher.
Das ist ein äußerst intuitiver Weg. Ich würde es genauso machen.
Ich meine, wenn ich Restdivision auf einem Taschenrechner, der Diese nicht unterstützt, machen will.