Scopo
Questo operatore esegue l'AND binario tra due numeri interi.
Per ogni coppia di bit degli operandi viene eseguito l'AND logico ed il bit risultante è 1 se i due bit sono entrambi a 1, 0 altrimenti.
Esempio:
0101 &
0011 =
-----
0001
Sintassi
int risultato = 0 // Leggo il risultato dell'operazione
//
risultato := espressione1 & espressione2
//
risultato := espressione1 & espressione2
Argomenti
espressione1 | Una qualunque espressione che restituisca un intero |
espressione2 | Una qualunque espressione che restituisca un intero |
Valore di ritorno
Viene restituito un intero che è il risultato dell'AND binario tra i due operandi.
Esempio di codice
// ***********************************************************
// Verifica che un determinato bit dei flag sia settato o meno
// ***********************************************************
public boolean TestGruppi.TestaFlag(
int flags // Stringa dei flag
int flagdatestare // Bit da testare (primo,secondo.. da destra)
)
{
int mask = 0 //
//
// In base al bit da testare creo la maschera giusta
// (gestiti i primi 5 bit)
switch (flagdatestare)
{
case 1:
// 00001
mask = 1
break
case 2:
// 00010
mask = 2
break
case 3:
// 00100
mask = 4
break
case 4:
// 01000
mask = 8
break
case 5:
// 10000
mask = 16
break
}
//
// True se l'operazione di masking dà un risultato maggiore di 0
return flags & mask > 0
}
// Verifica che un determinato bit dei flag sia settato o meno
// ***********************************************************
public boolean TestGruppi.TestaFlag(
int flags // Stringa dei flag
int flagdatestare // Bit da testare (primo,secondo.. da destra)
)
{
int mask = 0 //
//
// In base al bit da testare creo la maschera giusta
// (gestiti i primi 5 bit)
switch (flagdatestare)
{
case 1:
// 00001
mask = 1
break
case 2:
// 00010
mask = 2
break
case 3:
// 00100
mask = 4
break
case 4:
// 01000
mask = 8
break
case 5:
// 10000
mask = 16
break
}
//
// True se l'operazione di masking dà un risultato maggiore di 0
return flags & mask > 0
}
-
L'operatore & può essere utilizzato per eseguire un'operazione di Bit Masking.
Questa operazione può essere utile per isolare una parte di una stringa di bit oppure per testare se un bit particolare sia 0 oppure 1.
Ad esempio, data la stringa di bit 0011 per verificare se il terzo bit è 1 è sufficiente eseguire l'and binario con una stringa che abbia il bit desiderato a 1 e gli altri a 0.
0111 &
0010 =
-----
0010
Dato che il risultato è maggiore di 0 ne risulta che il terzo bit della stringa originale è 1.
Ultima modifica: 25/03/2010 / Validità: da 9.0.3940