1 Que sont les opérations sur bits ?
L'opération AND au niveau du bit est un opérateur binaire, &
représenté par le symbole . Il compare bit par bit les bits correspondants des deux opérandes.Seulement lorsque les deux bits correspondants sont à 1 en même temps, le bit correspondant du résultat est à 1, sinon il est à 0.
Les règles pour les opérations AND au niveau du bit sont les suivantes :
- Si les deux bits correspondants sont à 1, le bit résultant est à 1.
- Si un bit correspondant est 0, le bit résultat est 0.
Par exemple, supposons qu'il existe deux nombres binaires : 10101011 et 11110000. Le résultat de l’exécution d’une opération AND au niveau du bit est le suivant :
10101011
&
11110000
-----------
10100000
Par conséquent, l’opération AND au niveau du bit de 10101011 et 11110000 donne 10100000.
2 Utilisez des opérations sur bits pour résoudre intelligemment les puissances de 2
public boolean isPowerOfTwo(int n) {
if (n > 0 && (n & (n - 1)) == 0) {
return true;
} else {
return false;
}
}
illustrer:
Cette méthode tire parti des caractéristiques d'une puissance de 2 : après avoir soustrait 1 à une puissance de 2, le bit le plus élevé de sa représentation binaire devient 0, et les autres bits deviennent 1. Par conséquent, si un nombre n
est une puissance de 2, alors le résultat de l’opération AND au niveau du bit n
et doit être 0.n - 1
Avis:
Lors de l'exécution d'une opération ET au niveau du bit entre et , la partie de doit être n
placée entre parenthèses. En effet, l'opérateur ET au niveau du bit a une priorité inférieure à l'opérateur d'égalité . L'ajout de parenthèses garantit que l'opération ET au niveau du bit est effectuée avant l'opération de comparaison d'égalité.(n - 1)
(n - 1)
&
==