Registriert seit: 31. Mai 2009
1.198 Beiträge
Turbo Delphi für Win32
|
AW: Binärdarstellung einer Zahl mit einer einzigen Stringallokation
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)
|