
herpaderp
By: a guest on
May 2nd, 2012 | syntax:
C | size: 1.68 KB | hits: 13 | expires: Never
#include <stdio.h>
int main() {
unsigned int a;
int laenge=0, anzahl=0;
int i;
int j=0;
int stelle=0, wert=0;
// Zahl einlesen
printf("Geben Sie eine positive Ganzzahl ein!:\n");
scanf("%u", &a);
// Laenge der Zahl bestimmen
laenge = sizeof(a)*8;
printf("eingabe: %u \t laenge: %i\n", a,laenge);
// Eingelesene Zahl mit ... 0001 vergleichen
for (i=0; i < laenge; i++){
if (a & (1<<j))
anzahl = 1+anzahl;
j = j+1;
}
printf("anzahl einsen: %i\n", anzahl);
///////////////////////////////////////////////////////
// Teil b, bit setzen
///////////////////////////////////////////////////////
i=0;
j=laenge;
printf("Welche Bitstelle wollen Sie setzen?\n");
scanf("%i", &stelle);
printf("Welchen Wert wollen Sie setzen? (1 oder 0)\n");
scanf("%i", &wert);
if (wert < 0 || wert > 1)
printf("Ungueltige Eingabe!\n");
// Bit auf 0 oder 1 setzen
if (wert == 0)
a = a & ~(1 << (stelle-1));
// Bit auf 1 setzen
else if (wert == 1)
a = a | (1 << (stelle-1));
// Als Binärzahl ausgeben
printf("Neue Zahl lautet: %u\n", a);
printf("Die Binaerzahl lautet: ");
for (i=0; i < (laenge); i++) {
if (a & (1<<(j-1)))
printf("1");
else printf("0");
--j;
}
printf("\n");
return 0;
}