Ich habe die Restdivision mit Abrunden des Ergebnisses einer Division und Subtrahieren emuliert. Was haltet ihr davon?

Gut 50%
Anderes 50%
Schlecht 0%

2 Stimmen

2 Antworten

Anderes

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.


NorbertWillhelm 
Beitragsersteller
 25.10.2024, 10:58

Ich meine, wenn ich Restdivision auf einem Taschenrechner, der Diese nicht unterstützt, machen will.

Kelec  25.10.2024, 11:05
@NorbertWillhelm

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.

Kelec  25.10.2024, 11:12
@NorbertWillhelm

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.

NorbertWillhelm 
Beitragsersteller
 25.10.2024, 11:19
@Kelec

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.

Kelec  25.10.2024, 11:29
@NorbertWillhelm

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.

Gut

Das ist ein äußerst intuitiver Weg. Ich würde es genauso machen.