next up previous contents
Nächste Seite: Aufgaben Aufwärts: Ausdrücke Vorherige Seite: automatische Typumwandlung und Propagation   Inhalt

Ein Beispiel

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));
}



Thomas Neuhaus
2001-01-14