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

|

operatore copia link

Scopo

Questo operatore esegue l'OR binario tra due numeri interi.
Per ogni coppia di bit degli operandi viene eseguito l'OR logico ed il bit risultante è 0 se i due bit sono entrambi a 0, 1 altrimenti.

Esempio:

0101 |
0011 =
-----
0111

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'OR binario tra i due operandi.

Esempio di codice

// *************************
// Imposta o elimina un flag
// *************************

public int TestGruppi.SettaFlag(
  int mask    // Maschera dei Flag
  boolean set // True per settare, false per eliminare
  int bit     // Bit da testare (primo,secondo.. da destra)
)
{
  int msk = 0 // 
  // 
  // In base al bit da testare creo la maschera giusta
  // (gestiti i primi 5 bit)

  switch (bit)
  {
    case 1:
      if (set)
      {
         // 00001
         msk = 1
      }
      else
      {
         // 11110
         msk = 30
      }
    break
    case 2:
      if (set)
      {
         // 00010
         msk = 2
      }
      else
      {
         // 11101
         msk = 29
      }
    break
    case 3:
      if (set)
      {
         // 00100
         msk = 4
      }
      else
      {
         // 11011
         msk = 27
      }
    break
    case 4:
      if (set)
      {
         // 01000
         msk = 8
      }
      else
      {
         // 10111
         msk = 23
      }
    break
    case 5:
      if (set)
      {
         // 10000
         msk = 16
      }
      else
      {
         // 01111
         msk = 15
      }
    break
  }
  // 
  return mask | mask
}
  • L'operatore | può essere utilizzato per settare un bit di una maschera di bit.

    Ad esempio, data la stringa di bit 0011 per impostare il secondo bit a 1 è sufficiente eseguire l'OR binario con una stringa che abbia 1 nel bit desiderato e tutti gli altri bit a 0.

    0011 |
    0100 =
    -----
    0111

    Come risultato otteniamo una maschera con il bit desiderato a 1.

Ultima modifica: 23/03/2021 / Validità: da 8.5.3800

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum