vale1411
Genius
2 min. di lettura
Vota

Concetti Chiave

  • Gli operatori logici in C includono NOT (!), AND (&&) e OR (||), e sono utilizzati per valutazioni booleane con risultati di tipo int.
  • La valutazione di espressioni con operatori logici può interrompersi anticipatamente (short-circuit) se il primo operando determina già il risultato.
  • Gli operatori bitwise permettono manipolazioni logiche a livello di singoli bit e sono applicabili solo a tipi di dato int.
  • Tra gli operatori bitwise ci sono complemento a uno (~), AND (&), OR (|), XOR (^), shift sinistro (<<), e shift destro (>>).
  • Lo shift destro può comportare comportamenti diversi in base alla macchina: alcuni sistemi usano shift aritmetico, altri logico.

Indice

  1. Operatori logici e biitwise
  2. Operatori logici
  3. Operatori Bitwise (Bit a Bit)

Operatori logici e biitwise

Operatori logici

! -> NOT logico dell’operando unario -> !x
&& -> AND logico tra due operandi -> x&&y
|| -> OR logico tra due operandi -> x||y
Gli operatori logici sono tutti operatori binari.
Gli operatori logici sono di tipo booleano, generano quindi un risultato 1(se vero) o 0(se falso) di tipo int, ma in C 0=falso e ≠ 0 è vero.
Se il primo operando è sufficiente a determinare il valore dell’espressione il secondo non è valutato (provocando uno short-circuit evaluation).

Operatori Bitwise (Bit a Bit)

˜ -> Calcola il complemento ad uno dell'operando Unario ->˜x
& -> Calcola l'AND logico bit a bit tra i due operandi -> x&y
| -> Calcola l'OR logico bit a bit tra i due operandi -> x|y
^ -> Calcola lo XOR logico bit a bit tra i due operandi -> x^y
Calcola la shift a sinistra del primo operando per un numero di bit pari al valore del secondo operando -> x >> -> Calcola la shift a destra del primo operando per un numero di bit pari al valore del secondo operando -> x>>y
Gli operatori bitwise, permettono di effettuare operazioni logiche su dati rappresentanti da cifre binarie e possono essere utilizzati solo con tipi di dato int.


Lo shift a sinistra a Lo shift a destra a>>b equivale alla divisione per 2^b. Eseguendo lo shift a destra di una certa quantita signed, il risultato dipende dalla macchina, su alcune i bit rimasti liberi vengono posti uguali al bit di segno (shift aritmetico) mentre su altre vengono posti uguali a 0 (shift logico).

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community