Hallo und zwar habe ich folgende Aufgabenstellung:
Definieren Sie eine Funktion (convert-to-base-n k n). Diese nimmt eine Zahl k zur Basis 10 entgegen und wandelt diese zur Basis n um. Die Ausgabe erfolgt in einer Liste, deren Elemente die Ziffern der konvertierten Zahl sind. Die Reihenfolge der Ziffern in der Liste ist so, dass die höchste Ziffer zuerst kommt und die Ziffer an der Einerstelle als letztes.
Beispielsweise liefert (convert-to-base-n 27 2) die Liste (list 1 1 0 1 1) zurück.
( Es gilt n,k ∈ N, wobei 2 ≤ n < 10 und 0 ≤ k < 2^16)
Wie man den Basiswechsel von einer Basis in die andere durchführt (zB Zahl immer durch Basis 16 teilen, dann mit dem Rest arbeiten usw.) Aber wie soll sowas "allgemein" für mehrere mögliche Basen programmiert werden? Gibts da irgendeine grundlegende "Formel"/ einen "Algorithmus" dahinter?
Danke für eure Hilfe.
Definieren Sie eine Funktion (convert-to-base-n k n). Diese nimmt eine Zahl k zur Basis 10 entgegen und wandelt diese zur Basis n um. Die Ausgabe erfolgt in einer Liste, deren Elemente die Ziffern der konvertierten Zahl sind. Die Reihenfolge der Ziffern in der Liste ist so, dass die höchste Ziffer zuerst kommt und die Ziffer an der Einerstelle als letztes.
Beispielsweise liefert (convert-to-base-n 27 2) die Liste (list 1 1 0 1 1) zurück.
( Es gilt n,k ∈ N, wobei 2 ≤ n < 10 und 0 ≤ k < 2^16)
Wie man den Basiswechsel von einer Basis in die andere durchführt (zB Zahl immer durch Basis 16 teilen, dann mit dem Rest arbeiten usw.) Aber wie soll sowas "allgemein" für mehrere mögliche Basen programmiert werden? Gibts da irgendeine grundlegende "Formel"/ einen "Algorithmus" dahinter?
Danke für eure Hilfe.