Ein Bitvektor ist im Prinzip das, was die Pascal/Delphi-Sets machen oder auch die Klasse TBits: Man benutzt einfach einzelne Bits, um einen Boolean-Wert zu speichern.
In einem 32-Bit-Cardinal hat man z.B. 32 Bits, kann also 32 Booleans darin kodieren. Realisiert wird das über die binären Operatoren von Delphi.
Zum Abfragen eines Bits verwendet man sowas:
Delphi-Quellcode:
function GetBit(const Vector, Index: Cardinal): Boolean;
begin
Result:=Vector and (1 shl Index)>0;
end;
Und zum Setzen:
Delphi-Quellcode:
procedure SetBit(var Vector: Cardinal; const Index: Cardinal; const Value: Boolean);
begin
if Value then
Vector:=Vector or (1 shl Index)
else
Vector:=Vector and not (1 shl Index);
end;