On a parfois à manipuler l'écriture binaire d'un entier. On utilise alors les opérateurs suivants:
&
. Effectue un et sur
chacun des bits de ses deux opérandes. Ainsi 6&3
vaut 2
puisque .|
. Effectue un ou sur
chacun des bits de ses deux opérandes. Ainsi 6|3
vaut 7
puisque .^
. Effectue un
ou exclusif sur chacun des bits de ses deux opérandes. Ainsi
6^3
vaut 5
puisque .>>n
. Effectue un
décalage à droite de n crans de tous les bits (ceux le
plus à droite << tombent dans le vide >>, des zéros rentrent par la
gauche). Ainsi 14>>2
vaut 3
puisque .<<n
. Effectue un
décalage à gauche de n crans de tous les bits (ceux le
plus à gauche << tombent dans le vide >>, des zéros rentrent par la
droite). Ainsi 3<<2
vaut 12
puisque .~
. Effectue un
complément de tous les bits (les zéros deviennent des 1 et
réciproquement). Ainsi ~5
vaut -6
puisque , qui se trouve valoir -6 (car
etc., mais -4=1...1002, etc.)
i |= (1<<n)
i &= ~(1<<n)
i ^= (1<<n)
if (i&(1<<n)) ...
j = i>>1
et plus
généralement pour calculer le quotient de la division par une
puissance de 2 : j = i>>6
équivaut à j = i/64;
j = i<<1
et plus
généralement pour toute multiplication par une puissance de 2 :
j = i<<6
équivaut à j = i*64;.
1<<n
pour obtenir
2n.