Thread Dezimalzahl in Dualzahl umwandeln (37 answers)
Opened by SirLant at 2003-09-08 18:55

kabel
 2003-09-09 00:35
#11016 #11016
User since
2003-08-04
704 articles
BenutzerIn
[default_avatar]
wenn ich das beispiel sehe, könnte ich nur heulen. ich sehe das problem, dass der autor mit der seiteneffekt-funktion umgehen will (dynamische speicherallokation zur speicherung der binären repräsentation - anders macht so eine funktion IMO keinen sinn). das führte hier allerdings zu spaghetti-code. ausserdem sind meine C kentnisse schon arg eingerostet :-/ son mist, nächstes semester steht systemprogrammierung auf der speisekarte ...

der algorithmus, funktionierend und noch einmal funktional:
[READMORE]
Quote
kabel@linux:~/progs/C> cat convert.c
#include <stdio.h>

void dez_to_bin_sideeffect (int);
char * dez_to_bin_functional (int);

int main (void) {
dez_to_bin_sideeffect (34);
printf ("%s\n", dez_to_bin_functional (34));
return 0;
}

void dez_to_bin_sideeffect (int zahl) {
int i = 0;

for (i = 7; i >= 0; i--) {
printf ("%d",(zahl&(1<<i))?1:0);
}

printf ("\n");
}

char * dez_to_bin_functional (int zahl) {
int i = 0, j = 0;
char *binary_rep = NULL;
binary_rep = (char *) calloc (sizeof (char), i);
for (i=7, j=0; i >= 0; i--, j++) {
binary_rep[j] = (zahl&(1<<i)) ? '1' : '0';
}
return binary_rep;
}
kabel@linux:~/progs/C> make convert
cc convert.c -o convert
kabel@linux:~/progs/C> ./convert
00100010
00100010
kabel@linux:~/progs/C>

[/READMORE]
preisfrage: so ganz sauber ist mein code auch nicht ;)

HTH
-- stefan

View full thread Dezimalzahl in Dualzahl umwandeln