Einzelnen Beitrag anzeigen

TheAn00bis

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

Integer mit Wert "1243032" initialisiert

  Alt 5. Apr 2006, 18:14
Hey, folgender Code multipliziert zwei Integer.
Ich weiß, dass das auch einfacher geht, aber der Code soll später in Assembler umgesetzt werden.
Die Funktionsweise hat nichts mit meinem Problem zu tun:
Das showmessage in Zeile 3 gibt mir immer "1243032" aus.
In anbetracht der Tatsache, dass Integer normalerweise mit "0" initialisiert werden, hat mich das sehr verwundert und
ich habe ewig gebraucht darauf zu kommen, dass ich h2 erst auf "0" setzen muss.
Warum hat h2 nicht von Beginn an den Wert "0"?

Delphi-Quellcode:
function multi(w1,w2:integer):integer;
var h1, h2:integer;
begin
  showmessage(inttostr(h2));
  h2:=0;
  repeat
      h1:= w1 mod 2;
      if h1 <> 0 then
         begin
            h2:=h2+w2;
            dec(w1);
         end
      else
         begin
            w1:=w1 div 2;
            w2:=w2 * 2;
         end;
  until w1=1;

  result:=w2+h2;
end;

procedure TForm1.buttonclick(Sender: TObject);
begin
     edit3.text:=inttostr(multi(strtoint(edit1.text),strtoint(edit2.text)));
end;
  Mit Zitat antworten Zitat