Einzelnen Beitrag anzeigen

TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#7

Re: Div 2 durch Subtraktion

  Alt 24. Apr 2006, 21:09
Zitat von BenjaminH:
Nunja, Delphi-Referenz durchsuchenshl(x:=x shl 1;//x wird verdoppelt) bzw. Delphi-Referenz durchsuchenshr(x:=x shr 1;//x wird halbiert) machen das, aber ich glaube das meinst du nicht.
Du könntest solange von der Zahl 1 abziehen, bis das Ergebnis mal zwei kleiner oder gleich der Ausgangszahl ist:
Delphi-Quellcode:
function DividebySubtraction(n:Integer);
Begin
  Result:=n;
  while (Result+Result)>n do
    Dec(Result);
End;
[Edit]Habs in ne Funktion gepackt
Aber was für einen Sinn soll das haben?
Danke!

Der Algorithmus ist gut.

Zum Sinn:
Ich wollte die Multiplikation von zwei natürlichen Zahlen nur mit Addition und Subtraktion durchführen, da diese maschinentechnisch gesehen leichter zu verstehen sind; ganz im Gegensatz zur Multiplikation und Division. Mein
Algorithmus zur Multiplikation benötigt aber an zwei Stellen die Division durch 2 und ich wusste nicht, wie ich die
umsetzen kann; jetzt weiß ich es. Danke.

Edit: Wie funktioniert dieses shr denn? Irgendwie über Verschiebung?


Edit2: Achja, ich muss Binär ja nur die erste Stelle weglasse...

Edit3: Achwas, ich bin bescheuert, vergesst Edit2 bitte.
  Mit Zitat antworten Zitat