Esercizi Manipolazione Bit a Bit in C
Ecco degli esercizi semplici con soluzione per praticare la manipolazione bit a bit in C.
Esercizio 1: Operazione AND Bit a Bit
Eseguire un'operazione AND bit a bit tra due numeri.
#include <stdio.h>
int main() { int a = 12; // 1100 in binario int b = 10; // 1010 in binario int risultato = a & b; // 1000 in binario printf("Risultato di AND bit a bit: %d\n", risultato); return 0;}
Esercizio 2: Operazione OR Bit a Bit
Eseguire un'operazione OR bit a bit tra due numeri.
#include <stdio.h>
int main() { int a = 12; // 1100 in binario int b = 10; // 1010 in binario int risultato = a | b; // 1110 in binario printf("Risultato di OR bit a bit: %d\n", risultato); return 0;}
Esercizio 3: Operazione XOR Bit a Bit
Eseguire un'operazione XOR bit a bit tra due numeri.
#include <stdio.h>
int main() { int a = 12; // 1100 in binario int b = 10; // 1010 in binario int risultato = a ^ b; // 0110 in binario printf("Risultato di XOR bit a bit: %d\n", risultato); return 0;}
Esercizio 4: Operazione di Negazione Bit a Bit
Eseguire un'operazione di negazione bit a bit su un numero.
#include <stdio.h>
int main() { int a = 12; // 1100 in binario int risultato = ~a; // ...11110011 in binario (dipende dalla rappresentazione) printf("Risultato di negazione bit a bit: %d\n", risultato); return 0;}
Esercizio 5: Operazione di Shift a Sinistra
Eseguire un'operazione di shift a sinistra su un numero.
#include <stdio.h>
int main() { int a = 12; // 1100 in binario int risultato = a << 2; // 110000 in binario printf("Risultato di shift a sinistra: %d\n", risultato); return 0;}
Esercizio 6: Operazione di Shift a Destra
Eseguire un'operazione di shift a destra su un numero.
#include <stdio.h>
int main() { int a = 12; // 1100 in binario int risultato = a >> 2; // 0011 in binario printf("Risultato di shift a destra: %d\n", risultato); return 0;}
Esercizio 7: Controllare se un Bit è Impostato
Controllare se il terzo bit (da destra) di un numero è impostato.
#include <stdio.h>
int main() { int num = 12; // 1100 in binario int bit_position = 2; // Terzo bit (0-indexed) int maschera = 1 << bit_position; if (num & maschera) { printf("Il terzo bit è impostato.\n"); } else { printf("Il terzo bit non è impostato.\n"); } return 0;}