English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Libreria Client
  • Libreria Standard
  • Operatori

&

operatore copia link

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

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
}
  • 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

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum