Programm C: Nachdem eine Zahl eingegeben wird: Bits ausgeben?
hallo liebe Programmierer,
hier erst mal mein code:
#include <stdio.h>
int main ()
{
int a;
printf("Eingabe einer ganzen Zahl: ");
scanf("%d", &a);
printf("Die Bitfolge lautet: ");
bitfolge(a);
}
int bitfolge(int a)
{
int i;
int z = a;
for ( i=0 ; i< ? ; i++ )
{
z = z % 2;
printf("%d",z);
}
}
Ich möchte gerne, dass das Programm mir die Binärzahl von der eingegebenen Dezimalzahl liefert. Ich weiß zwar (und hoffentlich ist das richtig, was ich weiß) was in die for-Schleife kommt, aber nicht genau was neben "i <" stehen soll. Also, bis wann soll er diese Schleife ausführen? Es teilt immer wieder durch 2 und liefert das modulo. Aber wie lange....
Danke schon mal leute !!
2 Antworten
Könnte das funktionieren? Hab's nicht getestet. Es soll immer Bit i ausgegeben werden. Und eine Variable hat 8 mal so viele Bits wie Bytes.
Da gibt es aber doch bestimmt eine Möglichkeit, printf zu sagen, dass die Ausgabe binär sein soll...
int bitfolge(int a)
{
int i = 8*sizeof(int) -1;
for ( ; i>=0 ; --i )
printf("%d", (a>>i)&1 );
}
Schau Dir mal die itoa()-Funktion an!