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