Add two solutions for binaerUmrechnungSchleife.

This commit is contained in:
paulusja 2026-04-23 13:46:03 +02:00
parent 1a1837c7fb
commit 943fbf6ffa
3 changed files with 58 additions and 0 deletions

View File

@ -0,0 +1,48 @@
/***********************************************************************************
* 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: ");
while(number > 0)
{
int remainder = number % 2;
int division = number / 2;
printf("%5d / 2 = %5d; Rest %d\n", number, division, remainder);
number = division;
}
return 0;
}

View File

@ -28,9 +28,17 @@
***********************************************************************************/
#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;
}

View File

@ -20,6 +20,8 @@
#include <stdio.h>
// siehe 03: explizitesCasting.c
int main()
{