Add two solutions for binaerUmrechnungSchleife.
This commit is contained in:
parent
1a1837c7fb
commit
943fbf6ffa
48
04/binaerUmrechnungSchleife1.c
Normal file
48
04/binaerUmrechnungSchleife1.c
Normal 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;
|
||||||
|
}
|
||||||
@ -28,9 +28,17 @@
|
|||||||
***********************************************************************************/
|
***********************************************************************************/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include "../io/myio.h"
|
||||||
|
|
||||||
|
|
||||||
int main()
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
// siehe 03: explizitesCasting.c
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user