2. Se è una costante te la calcoli da te, basta convertire il numero binario che rappresenta la tua maschera in esadecimale o in decimale e usarlo assieme all'operatore &.
3. Ci sono più modi. Uno molto semplice è:
codice:
unsigned int maschera = ~((~0u)<<numero_bit);
  • ~0u ottiene un intero senza segno che ha tutti i bit a 1 (parte come tutto zero, quindi ci viene applicato l'operatore not bitwise che lo fa diventare tutto uni);
  • al numero così ottenuto viene applicato uno shift verso sinistra di numero_bit; quando si effettua uno shift a sinistra da destra entrano degli zeri, così ora il numero avrà numero_bit zeri a destra, alla cui sinistra ci saranno tutti gli uni;
  • al numero in questione viene nuovamente applicato il not binario, che converte gli uni in zeri e viceversa; si ottiene così la maschera desiderata.

Esempio (con numero_bit=4):
codice:
0u              0000000000000000
~0u             1111111111111111
~0u<<4          1111111111110000
~((~0u)<<4)     0000000000001111