Je rencontre constamment des personnes utilisant des opérateurs bitwises pour faire des choses rapides, faciles et élégantes. J'aimerais apprendre des astuces utiles. Quels sont certains des cas d'opérateur binaire les plus utiles? P>
6 Réponses :
généralement, ce n'est pas une bonne idée d'utiliser de telles astuces. Les compilateurs modernes font souvent ce genre de choses dans les coulisses lorsque cela est possible. Cela dit, parfois, vous avez des connaissances que le compilateur ne le fait pas (peut-être qu'une valeur particulière est garantie au moment de l'exécution d'être une puissance de 2). Si vous déterminez qu'il est une bonne idée d'essayer de telles astuces, Voici des hacks de Twidding utiles a>. p>
Temps constant 2-Expontenation:
x = 1 << n; // x = pow(2, n)
Pendant que je suis d'accord avec Michael McGowan en général, le bit TwidDling Hacks peut être très utile dans certaines situations, par exemple lors de la programmation du matériel intégré qui n'a pas toutes les instructions habituelles. J'ai également eu une bonne utilisation pour de telles techniques lors de la codage des programmes dans les principaux provers tels que SMT Solvers, qui n'a pas soutenu toutes les opérations que je voulais utiliser. P>
Mon premier arrêt Lorsque vous recherchez une solution bitwise à un problème, c'est le site bits Twiddling hacks < / a>. Il dispose de nombreux extraits de code pour de nombreuses techniques les plus courantes. P>
Il y a aussi le livre Le délice de Hacker couvre quelques techniques bitwises en profondeur. P>
Vous pouvez toujours utiliser l'opérateur Bitwise de gauche (<<) pour multiplier le nombre donné par 2.
de
Pour ex-
J'ai trouvé une collection intéressante des opérations bitwises à cet endroit: http://graphics.stanford.edu/~Seander/bitacks.html p>
Majuscule couverte à la lettre minuscule P>
32 in binary 100000 100000>>3 (left shift 3 times) will be 000100 100 is equivalent to 4
Je pense que c'est trop large. Il existe de bonnes questions pour des cas spécifiques lorsque vous recherchez Bithaacks . Cas d'utilisation du monde réel d'opérateurs bitwises . Graphics.stanford.edu/~Seander/bitacks.html