Bitwise, Cast e Sizeof
Operatori Bitwise (Bit a Bit)
Section titled “Operatori Bitwise (Bit a Bit)”Il C eccelle nella programmazione di sistema grazie agli operatori Bitwise, che manipolano i dati guardando i singoli bit (0 e 1).
&(AND a bit): 1 se entrambi i bit sono 1. Ottimo per mascherare (azzerare determinati bit).|(OR a bit): 1 se almeno uno dei bit è 1. Ottimo per impostare a 1 determinati bit.^(XOR a bit): 1 se solo uno dei due bit è 1, ma non entrambi. Ottimo per invertire stati specifici (toggle).~(Complemento / NOT a bit): Inverte tutti i bit (0 diventa 1, 1 diventa 0).<<e>>(Shift): Sposta i bit verso sinistra o verso destra.
Nota bene: I principianti confondono spesso lo XOR (^) con l’elevamento a potenza. In C, 2 ^ 7 NON fa 128 (la potenza), ma esegue l’operazione bit a bit (che dà come risultato 5)!
L’Operatore di Cast: (type)
Section titled “L’Operatore di Cast: (type)”Puoi convertire esplicitamente il valore di un’espressione in un altro tipo mettendolo tra parentesi prima della variabile.
double pi = 3.14;int intero = (int)pi; // Forza la conversione: 'intero' vale 3I cast disabilitano molti controlli di sicurezza del compilatore: usali solo quando sai esattamente cosa stai facendo.
L’Operatore sizeof
Section titled “L’Operatore sizeof”sizeof non è una funzione, ma un operatore nativo che viene risolto durante la compilazione (nella maggior parte dei casi). Restituisce il numero di byte occupati in memoria da un tipo o da una variabile. Il valore restituito è di tipo size_t (un intero senza segno).
int array_numeri[10];size_t dimensione = sizeof(array_numeri); // Restituisce 40 (10 elementi * 4 byte)💻 Esercizio Pratico: Maschere Bitwise
Section titled “💻 Esercizio Pratico: Maschere Bitwise”Usa le operazioni bit a bit per impostare (set) e azzerare (clear) uno specifico bit. Per impostare il terzo bit usa l’operatore OR (|). Per azzerare il primo bit (che parte da destra, valore 1) usa l’AND (&) in combinazione con il NOT (~).