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