Zahlen Basis Umrechenr in C

Predetor

Newbie
Registriert
Nov. 2012
Beiträge
2
So hallo und Danke schonmal. Also mein problem ist folgendes, ich soll ein C Programm schreiben das in der lage ist eine Gleitkomazahl zwischen o und 1 in eine Binär,Octal, und Hexadezimal umzuwandeln.

Code:
//Dieses programm ist in der lage eine gleitkommazahl zwischen 0 und 1 in eine belibige basis umzuwandeln

#include <math.h>
#include <stdio.h>

int main ()  {

	int Nach, wahl, start=0, Rest, Zahl, Erg, Speicher,i,v, c;
	float n, Speicher1;

	printf("\n\n\t Programm zur Umrechnung von Dezimal (Gleitkommazahlen) zu einer \n\t waehlbaren Basis");
	printf("\n\n\t Zu umrechnende Zahl bitte eingeben(Vor dem Komma): ");
	scanf("%i",&i);
	printf("\n\n\t Zu umrechnende Zahl bitte eingeben(Nach dem Komma (d.h. 0.xxx): ");
	scanf("%f",&n);

	printf("\n\n\t Wie viele Nachkommastellen sollen Ausgegeben werden? :");
	scanf("%i",&Nach);

	do{

	printf("\n\n\t Zu welcher Basis soll umgerechnet werden?");
	printf("\n\t <1> Binaer (2)");
	printf("\n\t <2> Oktal (8)");
	printf("\n\t <3> Hexal (16)");
	printf("\n\t Bitte waelen: ");
	scanf("%i",&wahl);

	if(wahl==1)
	{
		Speicher=i;
		Speicher1=n;
		Rest=1;

		while(i!=0)
		{
			Erg=i%2;
			printf("%i",Erg);
			i=i/2;
		}
		printf(",");
		c=0;
		while(c<=Nach)
		{
			v=(n*2);
			printf("%i",v);
			n=n-v;
			c++;
		}
		start=1;
	}

	else if(wahl==2)
	{
		start=1;
	}

	else if(wahl==3)
	{
		start=1;
	}

	else
	{
		printf("Gewuenschte Zahl wird nicht verwendet,bitte erneut waehlen");
		start=0;
	}
	
	}while(start!=1);
}

Mein problem ist nun das ich irgendwie fest hänge und nicht weiß wie ich weiter kommen soll. Nochmal Danke im Voraus.

PS: Ich darf nur die Bibliotheken benutztten die schon drin sind und auch keine Arrays oder ähnliches. Außerdem muss ich für jede form (Binär,Octal, Hexadezimal) 3 schleifen zur außrechnung benutzen (for,while,do-while.

PPS: Sorry für meine vielen Schreibfehler ^^"
 
Hä wo ist dein Problem ? Du solltest wissen wie man in Zahlensysteme umrechnen kann. Tip : Die Sache mit der Division funktioniert wunderbar wenn du im dualen System unterwegs bist, für Oktal oder Hex ist das umständlich.
 
mein erstes problem ist das die While schleife die ich schon habe nicht so leuft wie ich will und mein zweites problem ist das ich einfach nicht drauf komme wie ich die anderens schleifen bauen soll. Ich würde auch gerne ne einfachere methode nehmen aber mir sit noch nichts einfacheres eingefallen T_T.
 
Zuletzt bearbeitet:
Überleg dir mal den Wert der Nachkommastellen im Binär-, Oktal- und Heyadezimalsystem und ob man nicht auf ähnliche Weise, wie vor dem Komma auch nach dem Komma darauf kommen kann, welche Zahl da hin muss (am einfachsten ist wahrscheinlich das erstmal für dezimal -> binär zu überlegen und dann auf die anderen Zahlensysteme zu übertragen).

Da helfen wie immer Zettel und Stift und Nachdenken erstmal am meisten.
 
Zurück
Oben