Zitat von
Amateurprofi:
@alzaimar:
In der letzten Zeile von NumberToDigits sollte es wohl besser heißen
SetLength (Result, n);
Ich dachte dabei an den Fall: aNumber = 0. Aber das ist sowieso nicht ganz korrekt. Es müsste eine Repeat-Until Schleife sein. Und dann hättest Du Recht.
Delphi-Quellcode:
Function NumberToDigits (aNumber : Cardinal) : TByteArray;
Var
n : Integer;
Begin
n := 0;
SetLength (Result, 10);
Repeat
Result[n] := aNumber mod 10;
aNumber := aNumber div 10;
Inc (n);
Until aNumber = 0;
SetLength (Result, n1);
End;
..
// Beispiel
Var
B : TByteArray;
Begin
B := NumberToDigits (1234); // --> B = (4,3,2,1), also B[0] = 4, B[1] = 3 usw
...
@himitsu: Findst Du Assembler hier wirklich angebracht?