Operatori bit per bit C

Gli operatori bit per bit eseguono operazioni bitwise-AND (), bitwise-exclusive-OR (&^) e bit per bit inclusive-OR (|).

Sintassi

AND-expression:
equality-expression
AND-expression & equality-expression

exclusive-OR-expression:
AND-expression
exclusive-OR-expression ^ AND-expression

inclusive-OR-expression:
exclusive-OR-expressioninclusive-OR-expression | exclusive-OR-expression

Gli operandi degli operatori bit per bit devono avere tipi di dati integrali, ma i tipi possono essere diversi. Questi operatori eseguono le conversioni aritmetiche comuni; il tipo del risultato è il tipo degli operandi dopo la conversione.

Gli operatori bit per bit C sono descritti di seguito:

Operatore Descrizione
& L'operatore AND bit per bit confronta ogni bit del primo operando con il bit corrispondente del secondo operando. Se entrambi i bit hanno valore 1, il bit del risultato verrà impostato su 1, altrimenti verrà impostato su 0.
^ L'operatore OR bit per bit esclusivo confronta ogni bit del primo operando con il bit corrispondente del secondo operando. Se un bit ha valore 0 e l'altro 1, il bit del risultato corrispondente verrà impostato su 1. altrimenti verrà impostato su 0.
| L'operatore OR bit per bit inclusivo confronta ogni bit del primo operando con il bit corrispondente del secondo operando. Se uno dei due bit ha valore 1, il bit del risultato verrà impostato su 1, altrimenti verrà impostato su 0.

Esempio

Queste dichiarazioni vengono usate per gli esempi seguenti:

short i = 0xAB00;
short j = 0xABCD;
short n;

n = i & j;

Il risultato assegnato a n in questo primo esempio è identico a i (0xAB00 esadecimale).

n = i | j;

n = i ^ j;

L'operatore OR bit per bit inclusivo nel secondo esempio restituisce il valore 0xABCD (esadecimale), mentre l'operatore OR bit per bit esclusivo nel terzo esempio produce 0xCD (esadecimale).

Microsoft Specifico

Il risultato di un'operazione bit per bit sui numeri interi firmati è definito dall'implementazione in base allo standard C. Per il compilatore Microsoft C le operazioni bit per bit su Integer con segno funzionano in modo analogo alle operazioni bit per bit sui valori interi senza segno. Ad esempio, -16 & 99 può essere espresso in formato binario come

  11111111 11110000
& 00000000 01100011
  _________________
  00000000 01100000

Il risultato dell'operazione AND bit per bit è 96 decimale.

END Microsoft Specifico

Vedi anche

Operatore AND bit per bit: &
Operatore OR esclusivo bit per bit: ^
Operatore OR inclusivo bit per bit: |