Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: [C->Delphi] struct { ULONG a:2; }

  Alt 11. Okt 2008, 23:43
Zitat von SirTwist:
da gab es sowas wie "packed array of Boolean". Gibts das noch?
Boolean ist ein Byte (auch wenn es einen Bitwert darstellen soll)

Am Nähesten kommt dann wohl (da hier mehrere Bist in einem Feld vorkommen) eine Variante mit Masken (den Konstanten im Beispiel).
Delphi-Quellcode:
type TTest = Cardinal;

const aMask = $0003; // b0000000000000011
      bMask = $0004; // b0000000000000100
      cMask = $01F8; // b0000000111111000
      dMask = $0600; // b0000011000000000

var x: TTest;
      a, b, c, d: Cardinal;

a := x and aMask;
b := (x and bMask) shr 2;
c := (x and cMask) shr 3;
d := (x and dMask) shr 9;
Wenn alle Felder je nur ein Bit groß gewesen wären, dann hätte man auch ein SET (Bitfeld) nehmen können
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat