Mögliches Duplikat:
Erläuterung eines Algorithmus zum Setzen, Löschen und Testen eines einzelnen Bits
Ich habe eine unsigned char
. Ich möchte die Bits 2 bis 4 (beginnend mit dem niederwertigsten Bit als 0) in eine andere Datei kopieren. unsigned char
als die ersten drei Bits. Zum Beispiel, in
abcdefgh // a,b,c,d,e,f,g,h are 0 or 1
wird
00000def
Ich habe versucht
unsigned char input, output;
output = (input << 3) >> 5;
was nicht funktioniert, aber
output = (input << 3)
output >>= 5;
funktioniert.
Gibt es in C eine Möglichkeit, dies in einer Zeile zu erreichen?