Wenn Sie mit GCC kompilieren, Visual Studio 2015 (oder später) oder Clang, dann können Sie die 0b
(binär) Präfix verwenden, so dass Sie die Bitmaske sehen können, die Sie wollen, anstatt der 0x
(hexadezimal) Präfix, das ein wenig weniger intuitiv ist.
int x = 127;
printf("%d\n", x & 0b11111000); // Prints 120
printf("%d\n", x & 0b00011111); // Prints 31
Diese Beispiele werden die 3 niedrigstwertigen Bits (1, 2 und 4), oder die 3 höchstwertigen Bits (64, 32 und 16) maskieren, so dass nur das andere 5.
Wenn Sie kompilieren mit einem Compiler, der nicht oben aufgeführt ist, dann können Sie immer das Makro importieren.
Wenn Sie die tatsächlichen Bits anzeigen möchten, möchten Sie möglicherweise this question sehen.
Um die fünf niedrigsten Bits zu erhalten, schreiben Sie 'x & ((1 << 5) - 1)'. Für die fünf höchsten Bits muss auch der Operator für die rechte Verschiebung ('>>') verwendet werden. – NPE
0x05 ist nur das erste und dritte Bit. Die niedrigen 5 sind 0x1f. – Kevin
Die Maske '0x05' wird nur die Bits' 0' und '2' isolieren. Um die Bits "0" bis "4" zu isolieren, verwenden Sie die Maske "0x1F" –