Registriert seit: 23. Jan 2008
3.686 Beiträge
Delphi 2007 Enterprise
|
AW: Binärdarstellung einer Zahl mit einer einzigen Stringallokation
24. Mai 2012, 03:38
Stringlänge := Ceil(Lb(Zahlenwert))
Delphi-Quellcode:
var
i, k, len: Integer;
begin
k := 1;
if x>0 then
begin
len := Ceil(Lb(x));
SetLength(result, len);
dec(k);
else
if x<0 then
begin
len := Ceil(Lb(x))+1;
SetLength(result, len);
result[k] := ' -';
x := -x;
end
else
begin
result := ' 0';
Exit;
end;
for i := 1 to Length(result)-k do
result[i+k] := Chr(((x shr (len-i+1)) and 1)+Ord(' 0'));
end;
Ungetestet und nur für 8-Bit Strings. Möglich, dass der Laufindex noch versetzt ist, aber ich will ins Bett
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
Geändert von Medium (24. Mai 2012 um 03:51 Uhr)
|