Esercizi Operatori Bitwise C++
Codegrind Team•Jul 12 2024
Ecco degli esercizi semplici con soluzione per praticare l’utilizzo degli operatori bitwise in C++.
Esercizio 1: Operatore AND Bitwise
Utilizzare l'operatore `&` per eseguire un'operazione AND bit a bit tra due numeri.
#include <iostream>
int main() {
int a = 12; // 1100 in binario
int b = 10; // 1010 in binario
int risultato = a & b; // 1000 in binario
std::cout << "Risultato di a & b: " << risultato << std::endl; // 8 in decimale
return 0;
}
Esercizio 2: Operatore OR Bitwise
Utilizzare l'operatore `|` per eseguire un'operazione OR bit a bit tra due numeri.
#include <iostream>
int main() {
int a = 12; // 1100 in binario
int b = 10; // 1010 in binario
int risultato = a | b; // 1110 in binario
std::cout << "Risultato di a | b: " << risultato << std::endl; // 14 in decimale
return 0;
}
Esercizio 3: Operatore XOR Bitwise
Utilizzare l'operatore `^` per eseguire un'operazione XOR bit a bit tra due numeri.
#include <iostream>
int main() {
int a = 12; // 1100 in binario
int b = 10; // 1010 in binario
int risultato = a ^ b; // 0110 in binario
std::cout << "Risultato di a ^ b: " << risultato << std::endl; // 6 in decimale
return 0;
}
Esercizio 4: Operatore NOT Bitwise
Utilizzare l'operatore `~` per eseguire un'operazione NOT bit a bit su un numero.
#include <iostream>
int main() {
int a = 12; // 1100 in binario
int risultato = ~a; // 0011 in binario (inverting all bits)
std::cout << "Risultato di ~a: " << risultato << std::endl; // -13 in decimale (2's complement representation)
return 0;
}
Esercizio 5: Operatore Shift a Sinistra
Utilizzare l'operatore `<<` per eseguire uno shift a sinistra su un numero.
#include <iostream>
int main() {
int a = 3; // 0011 in binario
int risultato = a << 2; // 1100 in binario
std::cout << "Risultato di a << 2: " << risultato << std::endl; // 12 in decimale
return 0;
}
Esercizio 6: Operatore Shift a Destra
Utilizzare l'operatore `>>` per eseguire uno shift a destra su un numero.
#include <iostream>
int main() {
int a = 12; // 1100 in binario
int risultato = a >> 2; // 0011 in binario
std::cout << "Risultato di a >> 2: " << risultato << std::endl; // 3 in decimale
return 0;
}
Esercizio 7: Uso di AND Bitwise per Controllare un Bit
Utilizzare l'operatore `&` per controllare se il terzo bit di un numero è 1.
#include <iostream>
int main() {
int a = 12; // 1100 in binario
int mask = 1 << 2; // 0100 in binario
bool risultato = a & mask;
std::cout << "Il terzo bit di a è 1: " << std::boolalpha << risultato << std::endl; // true
return 0;
}
Esercizio 8: Uso di OR Bitwise per Impostare un Bit
Utilizzare l'operatore `|` per impostare il secondo bit di un numero a 1.
#include <iostream>
int main() {
int a = 10; // 1010 in binario
int mask = 1 << 1; // 0010 in binario
int risultato = a | mask; // 1010 | 0010 = 1010 in binario
std::cout << "Risultato di a con il secondo bit impostato: " << risultato << std::endl; // 10 in decimale
return 0;
}
Esercizio 9: Uso di XOR Bitwise per Invertire un Bit
Utilizzare l'operatore `^` per invertire il quarto bit di un numero.
#include <iostream>
int main() {
int a = 10; // 1010 in binario
int mask = 1 << 3; // 1000 in binario
int risultato = a ^ mask; // 1010 ^ 1000 = 0010 in binario
std::cout << "Risultato di a con il quarto bit invertito: " << risultato << std::endl; // 2 in decimale
return 0;
}
Esercizio 10: Uso di NOT Bitwise per Invertire Tutti i Bit
Utilizzare l'operatore `~` per invertire tutti i bit di un numero.
#include <iostream>
int main() {
int a = 5; // 0101 in binario
int risultato = ~a; // 1010 in binario (inverting all bits)
std::cout << "Risultato di ~a: " << risultato << std::endl; // -6 in decimale (2's complement representation)
return 0;
}