Don't like ads? PRO users don't see any ads ;-)
Guest

herpaderp

By: a guest on May 2nd, 2012  |  syntax: C  |  size: 1.68 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdio.h>
  2.  
  3.  
  4.  
  5. int main() {
  6.  
  7.         unsigned int a;
  8.         int laenge=0, anzahl=0;
  9.         int i;
  10.         int j=0;
  11.         int stelle=0, wert=0;
  12.  
  13.         // Zahl einlesen
  14.         printf("Geben Sie eine positive Ganzzahl ein!:\n");
  15.         scanf("%u", &a);
  16.  
  17.  
  18.         // Laenge der Zahl bestimmen
  19.         laenge = sizeof(a)*8;
  20.         printf("eingabe: %u \t laenge: %i\n", a,laenge);
  21.  
  22.  
  23.         // Eingelesene Zahl mit ... 0001 vergleichen
  24.  
  25.  
  26.         for (i=0; i < laenge; i++){
  27.  
  28.         if (a & (1<<j))
  29.                 anzahl = 1+anzahl;
  30.         j = j+1;
  31.         }
  32.         printf("anzahl einsen: %i\n", anzahl);
  33.  
  34.  
  35.  
  36.         ///////////////////////////////////////////////////////
  37.         // Teil b, bit setzen
  38.         ///////////////////////////////////////////////////////
  39.         i=0;
  40.         j=laenge;
  41.  
  42.         printf("Welche Bitstelle wollen Sie setzen?\n");
  43.         scanf("%i", &stelle);
  44.         printf("Welchen Wert wollen Sie setzen? (1 oder 0)\n");
  45.         scanf("%i", &wert);
  46.         if (wert < 0 || wert > 1)
  47.                 printf("Ungueltige Eingabe!\n");
  48.  
  49.  
  50.         // Bit auf 0 oder 1 setzen
  51.  
  52.         if (wert == 0)
  53.                 a = a & ~(1 << (stelle-1));
  54.         // Bit auf 1 setzen
  55.         else if (wert == 1)
  56.                 a = a | (1 << (stelle-1));
  57.  
  58.         // Als Binärzahl ausgeben
  59.         printf("Neue Zahl lautet: %u\n", a);
  60.                 printf("Die Binaerzahl lautet: ");
  61.                 for (i=0; i < (laenge); i++) {
  62.                  if (a & (1<<(j-1)))
  63.                         printf("1");
  64.                  else printf("0");
  65.                 --j;
  66.                 }
  67.  
  68.         printf("\n");
  69.  
  70.         return 0;
  71. }