R
rellesgnik
Hey ho ich bin neu hier im Forum,
also erstmal hallo!!
Ich muss meinem Kumpel helfen seine Hausaufgaben zu machen. Der hat noch weniger Plan von C als ich. Naja er muss ein Programm schreiben das von Dezimal in Binär, Oktal und Hexadezimal umrechnet. Für die Umrechnung von Dezimal in Oktal und Hexadezimal gibt es in C ja Bibliotheksfunktionen. Das Umrechnen von Dezimal in Binärzahlen gibs aber wohl nicht.
Und genau da liegt auch das Problen. Den Rest des Programms haben wir uns selbst zusammengebastelt und der funktioniert so weit auch aber der Teil mit den Binärzahlen ist aus irgendnem Programm kopiert. Da ich wie gesagt selber kaum Plan von C habe ist wahrscheinlich nur eine ganz kleine Sache falsch die ich ständig übersehe zudem Blick ich durch den Code von der Funktion überhaupt nicht durch.
Naja wär super wenn ihr mir/uns da weiterhelfen könntent und mal in den Code reinschaut
es geht um die Funktion Dez_Dual, alles soll in C geschrieben werden)
also erstmal hallo!!
Ich muss meinem Kumpel helfen seine Hausaufgaben zu machen. Der hat noch weniger Plan von C als ich. Naja er muss ein Programm schreiben das von Dezimal in Binär, Oktal und Hexadezimal umrechnet. Für die Umrechnung von Dezimal in Oktal und Hexadezimal gibt es in C ja Bibliotheksfunktionen. Das Umrechnen von Dezimal in Binärzahlen gibs aber wohl nicht.
Und genau da liegt auch das Problen. Den Rest des Programms haben wir uns selbst zusammengebastelt und der funktioniert so weit auch aber der Teil mit den Binärzahlen ist aus irgendnem Programm kopiert. Da ich wie gesagt selber kaum Plan von C habe ist wahrscheinlich nur eine ganz kleine Sache falsch die ich ständig übersehe zudem Blick ich durch den Code von der Funktion überhaupt nicht durch.
Naja wär super wenn ihr mir/uns da weiterhelfen könntent und mal in den Code reinschaut
![Frown :( :(](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f641.png)
Code:
#include <stdio.h>
#include <math.h>
int main ()
{
char auswahl,ergebnis[33], a[33],b[33],dual[33],Hex[33],Okt[33],ant='j';
long dez,dezi;
void Dez_Dual(long,char *);
void Dez_Hex();
void Dez_Okt();
while (ant=='j')
{
printf(" ---------------------------------------------------------------\n");
printf(" Umwandlungen von Dezimal in Dual, Hexadezimal oder Oktalzahlen\n");
printf(" maximale Eingabe der Dezimalzahl von 2147483647\n ");
printf(" ---------------------------------------------------------------\n\n");
printf(" Umwandlung von einer natuerlichen Zahl ... \n\n");
printf(" (1) ... in eine Dualzahl\n");
printf(" (2) ... in eine Hexadezimalzahl\n");
printf(" (3) ... in eine Oktalzahl\n");
do
{
printf(" Bitte entsprechende Wahl (1/2/3) eingeben: ");
scanf ("%c",&auswahl);
if (auswahl!='1' && auswahl!='2' && auswahl!='3');
printf("\n Falsche Eingabe! Entweder 1, 2 oder 3!\n\n");
}
while ( auswahl=='1'|| auswahl=='2' || auswahl=='3');
if(auswahl=='1')
{ printf(" ------------------------------------\n");
printf(" Umrechnung Dezimalzahl in Dualzahl\n");
printf(" ------------------------------------\n\n");
printf(" Ergebnis mit maximal 32 Stellen!\n\n");
printf(" Dezimalzahl: ");
scanf (" %c",&dez);
Dez_Dual(dez,b);
printf("%d" " Dualzahl: ", &b);
}
if(auswahl=='2')
{
Dez_Hex();
}
if(auswahl=='3')
{
Dez_Okt();
}
printf("\n\n\n Noch einmal (j/n)? ");
scanf("%c",& ant);
printf("\n\n");
}
return 0;
}
void Dez_Dual(long dez,char b[])
{
int i,k,ergebnis;
while (b!=0)
{
ergebnis[i]=b%2;
b=b/2;
i=i+1;
for(k=i-1;k>=0;k=k-1)
{ /*Ausgabe der Binärzahl*/
printf(" %d ",ergebnis[k]);
printf (" \n\n");
}
}
}
void Dez_Hex()
{
long dezi;
printf(" Ergebnis mit maximal 32 Stellen!\n\n");
printf(" Dezimalzahl: ");
Scanf("%c",&dezi);
printf(" Hexadezimalzahl: %X\n",dezi);
}
void Dez_Okt()
{
long dezim;
printf(" Ergebnis mit maximal 32 Stellen!\n\n");
printf(" Dezimalzahl: ");
Scanf("%c",&dezim);
printf(" Oktalzahl: %o\n",dezim);
}