uncannysnake schrieb:
int main()
{
int x=432;
int bits = 4 * sizeof(x);
int i, z=-1;
int f[bits-1];
for(i = bits - 1; i >= 0; i--) {
f[z]=(x >> i) & 1;
z++;
}
for(i=0; i<bits-1; i++){
printf("%d", f[i]);
}
return 0;
}
edit5:
dieser code funktioniert einwandfrei und hilft bei jeder bitlänge.
also wenn du double verwendest, kannst du die größte bitlänge haben und das beste an dieser funktion ist, dass du die funktion nicht ändern musst wenn du sie in ein anderes programm einbinden willst. sie funktioniert überall! deswegen hab ich die mir auch gleich in meine header datei eingebunden
Ach ja wirklich?
Der Code ist totaler Schrott. Er produziert undefiniertes Verhalten und arbeitet nicht für "alle" Bitlängen und schon gar nicht "überall".
Merke dir mal, dass (d)ein Programm nicht "einwandfrei überall" funktioniert, bloß weil es bei dir in deinem Umlauf gerade mal nicht gleich abstürzt und der Compiler keine Fehler wirft.