Forum: Algorithmen, Datenstrukturen und Klassendesign
by gammatester,
24. Mai 2012
Damit wird ja schon allein zur Längenbestimmung jedes Bits angesehen!
Forum: Algorithmen, Datenstrukturen und Klassendesign
by gammatester,
24. Mai 2012
Wahrscheinlich hast Du nicht genau hingesehen, aber bei meinem Code werden die Bits nur einmal angesehen (bis auf das höchste, aber das könnte man auch noch wegoptimieren).
Im Übrigen macht Amateurprofis NeededLength auch nichts wesentlich anderes, und ich bezweifele, ob ein Funktionsaufruf und langsames bsr schneller sind. Weiter kann man natürlich auch die finale Schleife rückwarts...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by gammatester,
24. Mai 2012
Noch ein Vorschlag, das Prinzip: Ermittele das höchste gesetzte Bit, allokiere den String und verarbeite die restlichen Bits.
function IntToBin(x: cardinal): string;
var
i,n: integer;
m: cardinal;
begin
if x=0 then Result := '0'
else begin
{Teil 1: Bestimme höchstes gesetztes Bit}
m := cardinal($80000000);