Hi Leute,
ich soll ein Programm zur Umwandlung von Dezimal in Binär und Dezimal in Hex schreiben.
Die Schritte sollen hintereinander ablaufen. Die Binärumwandlung funktioniert, allerdings gibt das programm bei der Hex-Umwandlung immer nur 000 aus, egel welchen Startwert ich eingebe. Ich habe bei dem Versuch, das ganze zu korregieren mehr Fehler reingebaut als vorher drin waren. Könnte sich das Programm mal jemand ansehen?
Vielen Dank
Marcel
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
unsigned long int dez;
int i,m=0,l=0,x[12],y[4],d=0;
printf("\nBitte geben Sie eine Dezimalzahl von 0 bis 4095 ein!\n");
printf("Dezimalzahl:");
scanf("%d",&i);
getchar();
if(i < 0)
{
printf("Zahl ist kleiner als 0!");
getchar();
return 0;
}
if(i > 4095)
{
printf("Zahl ist groesser als 4095");
getchar();
return 0;
}
while (l<12)
{
x[l++] = i % 2;
i /=2L;
}
for(i=l-1; i>0;i--)
(i%4) ? printf("%d",x) : printf("%d", x);
puts(" ");
getchar();
while (m<4)
{
y[m++] = i % 16;
i /=16L;
}
for(i=m-1; i>0;i--)
(i%4) ? printf("%d",y) : printf("%d", y);
puts(" ");
getchar();
return 0;
}
ich soll ein Programm zur Umwandlung von Dezimal in Binär und Dezimal in Hex schreiben.
Die Schritte sollen hintereinander ablaufen. Die Binärumwandlung funktioniert, allerdings gibt das programm bei der Hex-Umwandlung immer nur 000 aus, egel welchen Startwert ich eingebe. Ich habe bei dem Versuch, das ganze zu korregieren mehr Fehler reingebaut als vorher drin waren. Könnte sich das Programm mal jemand ansehen?
Vielen Dank
Marcel
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
unsigned long int dez;
int i,m=0,l=0,x[12],y[4],d=0;
printf("\nBitte geben Sie eine Dezimalzahl von 0 bis 4095 ein!\n");
printf("Dezimalzahl:");
scanf("%d",&i);
getchar();
if(i < 0)
{
printf("Zahl ist kleiner als 0!");
getchar();
return 0;
}
if(i > 4095)
{
printf("Zahl ist groesser als 4095");
getchar();
return 0;
}
while (l<12)
{
x[l++] = i % 2;
i /=2L;
}
for(i=l-1; i>0;i--)
(i%4) ? printf("%d",x) : printf("%d", x);
puts(" ");
getchar();
while (m<4)
{
y[m++] = i % 16;
i /=16L;
}
for(i=m-1; i>0;i--)
(i%4) ? printf("%d",y) : printf("%d", y);
puts(" ");
getchar();
return 0;
}