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):
Se voglio assegnare sia l'opzione di lettura che quella di esecuzione andrò a valorizzare un campo in questo modo:codice:int lettura = 0x01; binario: 00000001 int scrittura = 0x02; binario: 00000010 int esecuzione = 0x04; binario: 00000100 ...
Il campo assumerà il valore 5, che in binario si traduce: 00000101codice:in campo = lettura + esecuzione;
Come puoi vedere, sono accesi il bit 0 ed il bit 2. Da qualche parte si effettuerà un controllo:
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.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 }
Ciao.![]()



Rispondi quotando