Ja, ich weiß, dass es eine Funktion gibt, mit der das auf einmal geht. Dieses Beispiel soll aber zeigen, wie solche Zahlen umgewandelt werden können.

#include
void main(void)
{
int dez, dez2, multi =1, binar=0;
printf ("Dezimalzahl eingeben: ");
scanf ("%i", &dez);
do
{
dez2 = dez%2;
binar= binar + dez2 * multi;
dez=dez /2;
multi = multi *10;
}
while (dez>0);
printf ("Binäre Zahl: %i", binar);
}

Anfangs werden die Variablen deklariert.
Danach folgt die Ausgabe "Dezimalzahl eingeben" und wartet auf die Eingabe.
Danach folgt die Schleife mit Bedingung am Ende.
In dieser Schleife wird zuerst der Rest der Division der Variable dez in die Var. dez2 geschrieben. Dannach wird in die Variable binar binar hineingeschreiben und dez2 mal dem Multipikator geschrieben. Dann wird Dez durch 2 dividiert und der Multiplikator mit 10 Multilpliziert. Das geht so lange bis der Rest gleich 0 ist.

Aber warum Multiplikator, Rest und Division?

Da eine Zahl so umgewandelt wird:
1111
(v.l.n.r) 1; 2; 4; 8
dadurch wird alles durch 2 Dividiert und der Ganzzahlige Rest wieder verwendet.
Dieses Programm funktionier allerdings nur von 0-10239 da es nicht über einen kByte rechnen kann.






Copyrighted by Guideforce.de
Wenn sie dieses Tutorial sehen ohne über www.guideforce.de gekommen zu sein, dann wenden sie sich bitte an info@lifeworks.de