Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Binärdarstellung einer Zahl mit einer einzigen Stringallokation

  Alt 24. Mai 2012, 10:37
Die Anzahl der Stellen kann man doch einfach so ermitteln:
Delphi-Quellcode:
var
  digits: Integer;
begin
  digits := ceil(log(Value)/log(2));
  {...}
end;
Oder geht es gar nicht darum?

Delphi-Quellcode:
function IntToBin(Value: Integer): String;
var
  i: Integer;
  j: Double;
const
  BitValues: Array[Boolean] of Char = ('0', '1');
begin
  if Value = 0 then
    Result := '0'
  else
  begin
    j := Log2(Value);
    i := Ceil(j);
    if IsZero(Frac(j)) then inc(i);
    SetLength(Result, i);
    while i > 0 do
    begin
      Result[i] := BitValues[(Value and 1) = 1];
      Value := Value shr 1;
      dec(i);
    end;
  end;
end;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (24. Mai 2012 um 10:50 Uhr)
  Mit Zitat antworten Zitat