Hallo zusammen,
ich soll ein C-Programm schreiben, welches eine positive ganze Zahl in ein beliebiges System (2-9, also binär, 3ersystem,... 9ersystem) umwandelt.
Meine Idee war die Eingabe zweier Zahlen (Dezimalzahl und entspr. System), diese mit einer Switch-Case Abfrage von 2-9 zu unterscheiden. Dort findet dann die Umrechnung statt. Das Problem hierbei ist jedoch die Umrechnung an sich. Bspw. der Binärteil:
case 2: int zwei[8];
for (int i=7; i >=0; i--) {
zwei[i] = dez%2;
}
break;
Würde ja an sich schon mal funktionieren, was ist jedoch, wenn die zu errechnende Binärzahl länger als 8 Bits wäre? Wie könnte ich das besser lösen oder im Nachhinein ändern?
Selbiges Problem würde auch beim 3ersystem auftreten:
case 3:
int drei[8], i=0;
while(dez!=0){
drei[i] = dez%3;
dez = dez%3;
i--;
}
break;
Die Umrechnung an sich sollte funktionieren, nur weiß ich auch hier nicht, wie ich die Größe des Arrays im Vorfeld bestimmen könnte. Hat jemand Ratschläge? Muss nicht unbedingt in C-Code sein, geht mir eher um die allgemeine Logik. Vielen Dank im Voraus!