Das folgende Programm liefert aus der eingegebenen Zahl diejenige Zahl, die aus der Anzahl der angegebenen Bits ab der angegebenen Position besteht. Gibt man z.B. die Zahl 10 (Binär 1010) an und will 3 Bits ab Position 3, also die Zahl, die aus dem 3.2. und 1. Bit besteht, so erhält man binär 101, dezimal 5.
#include <stdio.h> unsigned getbits(unsigned zahl,unsigned position, unsigned anzahl) { return ((zahl >> (position + 1 - anzahl) & ~(~0 << anzahl)); } void main(void) { int z,p,a; printf("Gib die Zahl ein : \n"); scanf("%d",&z); printf("Gib die Position ein : \n"); scanf("%d",&p); printf("Gib die Anzahl Bits ein : \n"); scanf("%d",&a); printf("Das Ergebnis ist %d\n",getbits(z,p,a)); }