Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Binärdarstellung einer Zahl mit einer einzigen Stringallokation

  Alt 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)
  Mit Zitat antworten Zitat