integer na TBits

0

hejjj, pytanieee:

czy jest jakiś prosty sposób rzutowania typów liczbowych całkowitych na TBits ?

jako tablicą flag do tej pory posługiwałem się zmienną int64 ale boję się że kiedyś może zabraknąć w niej miejsca, stąd nowy pomysł z TBits...

0

Raczej nie. TBits jest tylko klasą ładnie obudowującą tablicę boolean'ów, a jak powszechnie wiadomo boolean zajmuje bajt w pamięci. Może taka procedura (pisane z głowy):

procedure AddToTBits(bits: TBits; n: integer; start: integer = 0);
var i,size: integer;
begin
if bits=nil then Exit;
size:=sizeof(integer);
if bits.size < start+size then
    bits.size:=2*bits.size-start-size;
for i:=0 to size-1 do
    begin
    bits.Bits[start+i]:=boolean((n shr (size-i)) and 1);
    end;
end;
0

dzięki ! ale na razie nie sprawdzę bo sprawa już jest w kolejce !

(w końcu się coś u mnie dzieje no nie ? :P)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0