Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: 8 Integervariablen zu einem Byte

  Alt 28. Jul 2011, 18: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.
$2B or not $2B
  Mit Zitat antworten Zitat