Si vous compilez avec GCC, Visual Studio 2015 (ou version ultérieure), ou Clang, vous pouvez alors utiliser le préfixe 0b
(binaire), de sorte que vous pouvez voir le masque de bits que vous voulez, au lieu de la 0x
(hexadécimal) préfixe, ce qui est un peu moins intuitif.
int x = 127;
printf("%d\n", x & 0b11111000); // Prints 120
printf("%d\n", x & 0b00011111); // Prints 31
Ces exemples masquer les 3 bits les moins significatifs (1, 2 et 4), ou les 3 bits les plus significatifs (64, 32 et 16), ne laissant que l'autre 5.
Si vous compilez avec un compilateur non répertorié ci-dessus, vous pouvez toujours importer la macro BOOST_BINARY. Si vous voulez voir les bits réels, alors vous pourriez vouloir voir this question.
Pour obtenir les cinq bits les plus bas, écrivez 'x & ((1 << 5) - 1)'. Pour les cinq bits les plus élevés, vous devez également utiliser l'opérateur de décalage vers la droite ('>>'). – NPE
0x05 est juste le premier et le troisième bits. Les 5 bas sont 0x1f. – Kevin
Le masque '0x05' isolera seulement les bits' 0' et '2'. Pour isoler les bits '0' à' 4', utilisez le masque '0x1F' –