Ale jeśli chcesz przechowywać kilka z nich, możesz je przesunąć bitowo i zapisać je jako jedną int, trochę jak uprawnienia / tryby plików unixowych.
Na przykład w trybie 755 każda cyfra odnosi się do innej klasy użytkowników: właściciela, grupy, publicznej. W obrębie każdej cyfry 4 jest odczytywane, 2 jest zapisywane, 1 jest wykonywane, więc 7 to wszystkie jak binarne 111. 5 jest czytane i wykonywane tak 101. Stwórz swój własny schemat kodowania.
Właśnie piszę coś do przechowywania danych harmonogramu TV z Schedules Direct i mam pola binarne lub tak / nie: stereo, hdtv, nowy, ei, blisko podpisu, dolby, SAP w języku hiszpańskim, premiera sezonu. Więc 7 bitów lub liczba całkowita z maksymalnie 127. Naprawdę jeden znak.
Przykład AC z tego, nad czym teraz pracuję. has () to funkcja, która zwraca 1, jeśli 2. ciąg znajduje się w pierwszym. inp jest łańcuchem wejściowym tej funkcji. misc jest znakiem bez znaku zainicjowanym na 0.
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;
Przechowuję więc 7 wartości logicznych w jednej liczbie całkowitej z miejscem na więcej.