Aber, wenn Sie ein Bündel von ihnen speichern möchten, könnten Sie sie bit-shiften und sie alle als ein int speichern, ein wenig wie Unix-Dateiberechtigungen/Modi.
Im Modus 755 zum Beispiel bezieht sich jede Ziffer auf eine andere Benutzerklasse: Eigentümer, Gruppe, öffentlich. Innerhalb jeder Ziffer steht 4 für Lesen, 2 für Schreiben, 1 für Ausführen, so dass 7 für alle steht, wie binär 111. 5 ist Lesen und Ausführen, also 101. Denken Sie sich Ihr eigenes Kodierungsschema aus.
Ich schreibe gerade etwas für die Speicherung von TV-Programmdaten von Schedules Direct und ich habe die binären oder Ja/Nein-Felder: Stereo, hdtv, neu, ei, mit Untertiteln, Dolby, sap in Spanisch, Staffelpremiere. Also 7 Bits oder eine ganze Zahl mit einem Maximum von 127. Eigentlich nur ein Zeichen.
Ein C-Beispiel von dem, woran ich gerade arbeite. has() ist eine Funktion, die 1 zurückgibt, wenn die zweite Zeichenkette in der ersten enthalten ist. inp ist die Eingabezeichenkette für diese Funktion. misc ist ein unsigned char, das auf 0 initialisiert ist.
if (has(inp,"sap='Spanish'") > 0)
misc += 1;
if (has(inp,"stereo='true'") > 0)
misc +=2;
if (has(inp,"ei='true'") > 0)
misc +=4;
if (has(inp,"closeCaptioned='true'") > 0)
misc += 8;
if (has(inp,"dolby=") > 0)
misc += 16;
if (has(inp,"new='true'") > 0)
misc += 32;
if (has(inp,"premier_finale='") > 0)
misc += 64;
if (has(inp,"hdtv='true'") > 0)
misc += 128;
Ich speichere also 7 Boolesche Werte in einer Ganzzahl mit Platz für weitere.