Masque de bits en C

Quelle est la meilleure façon de construire un masque de bits en C avec m bits précédée par k unset bits, et suivie par n unset bits:

00..0 11..1 00..0
  k     m     n

Par exemple, k=1, m=4, n=3, le résultat serait le masque de bits:

01111000
  • Pour obtenir des réponses à peu se tourner les hacks, comme cela, une très bonne source en ligne est Peu Tourner les Hacks.
  • Habituellement, un masque de macros sont définies sur inclusif peu d'indices, quelque chose comme #define BITS(p,q) ... où p = m + n - 1 et q = n, p >= q
  • Hacker Plaisir est beaucoup plus complet (1.8 kilopages) et génial.
  • Je ne comprends pas vraiment pourquoi vous avez besoin d'avoir k ici. C'est juste plus facile pour spécifier une plage de bits pour définir à l'aide de m et n seulement.
InformationsquelleAutor grigy | 2008-11-25