Pour manipuler directement l'écriture binaire d'un entier, on utilise les opérateurs suivants :
& effectue un et sur chacun des bits de ses deux
 opérandes ; par exemple, 6&3 = 143#143 & 144#144 =145#145 =
 2 ;
|  effectue un ou sur
 chacun des bits de ses deux opérandes ; par exemple,  6|3  =
 143#143 |  144#144 = 146#146 = 7 ;
^  effectue un
 ou exclusif sur chacun des bits de ses deux opérandes ; par exemple, 
 6^3  = 143#143 ^ 144#144 = 147#147 =  5 ;
>>n effectue un décalage à droite de n
 crans de tous les bits (ceux le plus à droite tombent, le bit le plus
 à gauche est reproduit sur les 59#59 bits de gauche) ; 107#107>>
148#148 ; par exemple,
 14>>2 = 149#149 >>2 = 150#150 = 24#24, tandis que
 -15>>2 = 151#151 >>2 = 152#152 = 153#153 ;
>>>n effectue un décalage à droite non signé de
 n crans de tous les bits (ceux le plus à droite tombent, des
 zéros rentrent par la gauche) ; si 154#154, 107#107>>>
155#155 ; par exemple,
 -15>>>2 = 151#151 >>>2 = 156#156 =
 157#157 (calcul sur 32 bits);
<<n effectue un décalage à gauche de n
 crans de tous les bits (ceux le plus à gauche tombent, des zéros
 rentrent par la droite) ; par exemple, 3<<2 = 150#150 <<2 =
 158#158 = 12 ;
~  effectue un
 complément de tous les bits (les zéros deviennent des 1 et
  réciproquement) ; par exemple,  ~5  = ~159#159 =
  160#160 = -6 ; de façon générale, -161#161~162#162.
Ces opérations sont fréquemment utilisées pour travailler sur les bits de la façon suivante :
i |= (1<<n) ;
i &= ~(1<<n) ;
i ^= (1<<n) ;
if (i&(1<<n)!=0) ....
et aussi dans les cas suivants où elles sont plus rapides que les opérations arithmétiques correspondantes :
>>165#165, si 154#154 ;
<<166#166.