Wenn Sie jedoch eine Reihe von ihnen speichern möchten, können Sie sie bitverschieben und alle als ein Int speichern, ähnlich wie bei Unix-Dateiberechtigungen / -Modi.
Im Modus 755 bezieht sich beispielsweise jede Ziffer auf eine andere Benutzerklasse: Eigentümer, Gruppe, Öffentlich. Innerhalb jeder Ziffer wird 4 gelesen, 2 wird geschrieben, 1 wird ausgeführt, so dass 7 alle wie Binär 111 sind. 5 wird gelesen und ausgeführt, also 101. Erstellen Sie Ihr eigenes Codierungsschema.
Ich schreibe nur etwas zum Speichern von TV-Programmdaten aus Schedules Direct und habe die binären oder Ja / Nein-Felder: Stereo, HDTV, Neu, Ei, Untertitel, Dolby, SAP auf Spanisch, Saisonpremiere. Also 7 Bits oder eine ganze Zahl mit maximal 127. Ein Zeichen wirklich.
Ein AC-Beispiel von dem, woran ich gerade arbeite. has () ist eine Funktion, die 1 zurückgibt, wenn sich die 2. Zeichenfolge in der ersten befindet. inp ist die Eingabezeichenfolge für diese Funktion. misc ist ein vorzeichenloses Zeichen, 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;
Also speichere ich 7 Boolesche Werte in einer ganzen Zahl mit Platz für mehr.