Ma, se si desidera memorizzarne un po ', è possibile spostarli un po' e memorizzarli tutti come un unico int, un po 'come le autorizzazioni / modalità del file unix.
Ad esempio, per la modalità 755, ogni cifra si riferisce a una diversa classe di utenti: proprietario, gruppo, pubblico. All'interno di ogni cifra 4 viene letto, 2 è scritto, 1 è eseguito, quindi 7 sono tutti come il binario 111. 5 è letto ed eseguito così 101. Crea il tuo schema di codifica.
Sto solo scrivendo qualcosa per memorizzare i dati dei programmi TV da Schedules Direct e ho i campi binari o sì / no: stereo, hdtv, nuovo, ei, sottotitoli, dolby, sap in spagnolo, premiere di stagione. Quindi 7 bit, o un numero intero con un massimo di 127. Un carattere davvero.
Esempio AC da quello su cui sto lavorando ora. has () è una funzione che restituisce 1 se la seconda stringa è nella prima. inp è la stringa di input per questa funzione. misc è un carattere senza segno inizializzato su 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;
Quindi sto memorizzando 7 booleani in un intero con spazio per altro.