TBits
[Properties (by Name)][Methods (by Name)][Events (by Name)]
Class to store collections of bits (binary values that can be 0 or 1)
Declaration
Source position: classesh.inc line 384
Type
  TBits = class (TObject)
  private
    FBits : ^TBitArray;
    FSize : LongInt;
    FBSize : LongInt;
    findIndex : LongInt;
    findState : Boolean;
    procedure SetBit(bit: LongInt; value: Boolean);
    procedure SetSize(value: LongInt);
  protected
    procedure CheckBitIndex(Bit: LongInt; CurrentSize: Boolean);
  public
    constructor Create(TheSize: LongInt);  Virtual;
    destructor Destroy;  Override;
    function GetFSize : LongInt;
    procedure SetOn(Bit: LongInt);
    procedure Clear(Bit: LongInt);
    procedure Clearall;
    procedure CopyBits(BitSet: TBits);
    procedure AndBits(BitSet: TBits);
    procedure OrBits(BitSet: TBits);
    procedure XorBits(BitSet: TBits);
    procedure NotBits(BitSet: TBits);
    function Get(Bit: LongInt) : Boolean;
    procedure Grow(NBit: LongInt);
    function Equals(Obj: TObject) : Boolean;  Override;  Overload;
    function Equals(BitSet: TBits) : Boolean;  Overload;
    procedure SetIndex(Index: LongInt);
    function FindFirstBit(State: Boolean) : LongInt;
    function FindNextBit : LongInt;
    function FindPrevBit : LongInt;
    function OpenBit : LongInt;
    Bits[Bit: LongInt]: Boolean; default;
    Size : LongInt;
  end
  ;
Description
TBits can be used to store collections of bits in an indexed array. This is especially useful for storing collections of booleans: Normally the size of a boolean is the size of the smallest enumerated type, i.e. 1 byte. Since a bit can take 2 values it can be used to store a boolean as well. Since TBits can store 8 bits in a byte, it takes 8 times less space to store an array of booleans in a TBits class then it would take to store them in a conventional array.
TBits introduces methods to store and retrieve bit values, apply masks, and search for bits.
Members
| Member | Type | Visibility | Description | 
|---|---|---|---|
| AndBits | Method | public | Performs an and operation on the bits. | 
| Bits | Property | public | Access to all bits in the array. | 
| CheckBitIndex | Method | protected | |
| Clear | Method | public | Clears a particular bit. | 
| Clearall | Method | public | Clears all bits in the array. | 
| CopyBits | Method | public | Copy bits from one bits set to another | 
| Create | Method | public | Creates a new bits collection. | 
| Destroy | Method | public | Destroys a bit collection | 
| Equals | Method | public | Determines whether the bits of 2 arrays are equal. | 
| FBits | Field | private | |
| FBSize | Field | private | |
| FindFirstBit | Method | public | Find first bit with a particular value | 
| findIndex | Field | private | |
| FindNextBit | Method | public | Searches the next bit with a particular value. | 
| FindPrevBit | Method | public | Searches the previous bit with a particular value. | 
| findState | Field | private | |
| FSize | Field | private | |
| Get | Method | public | Retrieve the value of a particular bit | 
| GetFSize | Method | public | Returns the number of records used to store the bits. | 
| Grow | Method | public | Expands the bits array to the requested size. | 
| NotBits | Method | public | Performs a not operation on the bits. | 
| OpenBit | Method | public | Returns the position of the first bit that is set to False. | 
| OrBits | Method | public | Performs an or operation on the bits. | 
| SetBit | Method | private | |
| SetIndex | Method | public | Sets the start position for FindNextBit and FindPrevBit | 
| SetOn | Method | public | Turn a particular bit on. | 
| SetSize | Method | private | |
| Size | Property | public | Current size of the array of bits. | 
| XorBits | Method | public | Performs a xor operation on the bits. | 
Inheritance
| Class | Description | 
|---|---|
| TBits | Class to store collections of bits (binary values that can be 0 or 1) |