Significa che c'è un intero (che non è costruito a caso, se osservi i valori espressi in esadecimale) che viene utilizzato come una mappa di bit.
Sommando i vari interi si ottiene un intero che rappresenta tutte le opzioni che sono state attivate.
Facciamo un esempio semplice, con un intero su 8 bit (invece di un intero su 32 bit come Java):
codice:
int lettura = 0x01; binario: 00000001
int scrittura = 0x02; binario: 00000010
int esecuzione = 0x04; binario: 00000100
...
Se voglio assegnare sia l'opzione di lettura che quella di esecuzione andrò a valorizzare un campo in questo modo:
codice:
in campo = lettura + esecuzione;
Il campo assumerà il valore 5, che in binario si traduce: 00000101
Come puoi vedere, sono accesi il bit 0 ed il bit 2. Da qualche parte si effettuerà un controllo:
codice:
if ((campo & lettura) > 0) {
// proprietà di lettura attivata
}
if ((campo & scrittura) > 0) {
// proprietà di scrittura attivata
}
if ((campo & esecuzione) > 0) {
// proprietà di esecuzione attivata
}
Il giochino si fa con la mappa di bit, quindi utilizzando le operazioni bit a bit per verificare se il singolo bit è attivo o meno.
Ciao.