Bitfeld mit Swift verwenden, um Werte mit mehr als 1 Bit zu speichern

ImC Ich kann so etwas machen:

struct byte_nibbles {
    unsigned char b1: 4;
    unsigned char b2: 4;
    unsigned char b3: 4;
    unsigned char b4: 4;
    unsigned char b5: 4;
    unsigned char b6: 4;
    unsigned char b7: 4;
    unsigned char b8: 4;
};

union {
    unsigned long var;
    struct byte_nibbles b;
}
u;

int main(void)
{
    u.b.b1=0x01; u.b.b2=0x02; u.b.b3=0x03; u.b.b4=0x04;
    u.b.b5=0x05; u.b.b6=0x06; u.b.b7=0x07; u.b.b8=0x08;
    return 0;
}

So kann ich auf bestimmte Teile der byte_nibbles zugreifen. Offensichtlich ist dies nur ein Beispiel. Es ist möglich, Bitfelder beliebiger Größe zu erstellen, die in die Grundtypen passen.

rotz meiner Bemühungen und vielen Nachforschungen konnte ich in @ nicht herausfinden, wie das gehSchnel. Ich kann bitweise verwenden, um das gleiche Ergebnis zu erzielen, aber dies ist nicht so lesbar und elegant.

Irgendeine Idee

Antworten auf die Frage(2)

Ihre Antwort auf die Frage