Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#6

AW: 8 Integervariablen zu einem Byte

  Alt 28. Jul 2011, 17:48
Warum eigentlich 8 Einzelvariablen?

Delphi-Quellcode:
type
  TMeinByte = Set of 0..7;

  // oder

  TNewByte = record
  private
    function GetBit(idx: Integer): Boolean;
    procedure SetBit(idx: Integer; Value: Boolean);
  public
    Data: Byte; //Data: TMeinByte;
    property Bit[idx: Integer]: Boolean read GetBit write SetBit; default;
  end;

function TNewByte.GetBit(idx: Integer): Boolean;
begin
  Result := Data and (1 shl idx) <> 0; //Result := idx in Data;
end;

procedure TNewByte.SetBit(idx: Integer; Value: Boolean);
begin
  if Value then
    Data := Data or (1 shl idx) //Include(Data, idx)
  else
    Data := Data and not (1 shl idx); //Exclude(Data, idx);
end;
den Record könnte man noch mit Operatoren ausrüsten, welchen ihn automatisch in und von Byte umkonvertieren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat