Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#23

Re: qwertz543221 kleine String-Math-Lib

  Alt 14. Jun 2009, 07:09
Zitat von qwertz543221:
Hallo himitsu,
leider habe ich deinen letzten beitrag nicht ganz nachvollziehen können.
Bei der Verwendung der subtr. fkt zur durchführung einer division befindet sich das programm in einer endlosschleife.
lad dochj mal ein komplettest Testprojekt hoch, damit man das Schleifchen auch mal sehen kann ... eigentlich sollte da ja keines sein
Zitat:
Delphi-Quellcode:
//zwei gleiche Zahlen:
  if a=b
  then result:='0'
  else
  //a>b?
if (vergleich(a,b)<>0 )and(a<>b)
  then
  begin
  showmessage('Subtraktion nicht möglich.');
  exit;
  end
if a=b » brich ab, wenn gleich ... vergleich(a,b)<>0 bzw. a<>b » brich ab, wenn ungleich

also alles danach wird niemal abgearbeitet
Delphi-Quellcode:
if vergleich(a,b)<0
  then
Zitat von himitsu:
Mein Tipp: einen Breakpoint setzen und dann intensive Nutzung der Taste F7
auf die erste Zeile der Quotient-Funktion gehen F5 drücken,
dann mit F7 in Ruhe die Funktion abarbeiten
und dabei schauen was mit den ganzen Variablen passiert
dafür gibt es unter Strg+Alt+W ein Fenster, wo man Variablennamen eintragen kann
oder man höllt die Maus mal ein paar Sekündchen über eine Variable im Code und bekommt so ihren Inhalt angezeigt.

Zitat von qwertz543221:
gibt es vlt einen effizienteren algorithmus zur modulo-bestimmung, dann bräuchte ich die division gar nicht?? - das ganze soll ja irgendwann für RSA dienen, bei dem die zahlen über alle normalen delphi-variablentypen hinausgehen.
Und das ist schon ein recht effektiver Algo dafür
gut, da es sich hier ja, aus Sicht des PCs um "alleinstehende" einzelne Dezimalzahlen handelt,
müssen wir diese halt auch komplett behandeln und dann jeweils um eine ganze verschieben.

Bei einer "rein" binären Lib, hätte man hier Bitweise gehen können und dann schön über shl die ganzen Bits verschieben können.

Problem ist halt, daß soeine auf Strings aufbauende Lib nunmal nicht ganz mit dem Wort Effizienz vereinbar ist.
$2B or not $2B
  Mit Zitat antworten Zitat