info1_uebungen/04/binaerUmrechnungSchleife2.c

45 lines
2.6 KiB
C

/***********************************************************************************
* Aufgabe *
* Schreiben Sie ein Programm, das eine ganze Zahl einliest und die Rechenschritte *
* anzeigt, um die Bits der entsprechenden Binaerzahl zu ermitteln. Nutzen Sie *
* eine geeignete Schleife, sodass das Programm alle Stellen der Binärzahl anzeigt.*
* Lesen Sie zudem solange ein, bis eine positive Zahl eingegeben wird. *
* *
* Beispiel: *
* >> Geben Sie eine ganze, positive Zahl ein: abc *
* >> Geben Sie eine ganze, positive Zahl ein: -5 *
* >> Geben Sie eine ganze, positive Zahl ein: 21 *
* 21 / 2 = 10, Rest: 1 *
* 10 / 2 = 5, Rest: 0 *
* 5 / 2 = 2, Rest: 1 *
* 2 / 2 = 1, Rest: 0 *
* *
* Schreiben Sie danach das Programm so um, dass es Bit- und Shiftoperatoren *
* verwendet sowie negative Zahlen verarbeiten kann. Die Rechenschritte werden *
* nicht mehr anzeigt, sondern nur noch das Bitmuster aller gespeicherten Bits. *
* *
* Beispiele: *
* >> Geben Sie eine ganze Zahl ein: abc *
* >> Geben Sie eine ganze Zahl ein: 21 *
* 00000000000000000000000000010101 *
* *
* >> Geben Sie eine ganze Zahl ein: -9 *
* 11111111111111111111111111110111 *
***********************************************************************************/
#include <stdio.h>
#include "../io/myio.h"
int main()
{
unsigned int number = getNumber("Ganze Zahl: ");
for(int i = sizeof(number)*8-1; i >= 0; i--)
{
printf("%d", 1 & (number >> i));
}
return 0;
}