Umrechnung vom Zehnersystem

el_grazioli

Neues Mitglied
Hallo,
ich muss einen "Taschenrechner" programmieren, der mir eine Zahl im Zehnersystem in ein beliebiges Zahlensystem umwandelt. Nun habe ich aber das Problem, dass mir die Zahlen (logischerweise) rückwärts ausgegeben werden. Ich hab denk ich den richtigen Ansatz für die Problemlösung, es fehlt aber noch was. Nur weiß ich nicht genau was das Problem ist. Vielleicht kann mir hier einer helfen:

public class Test {
public static void main(String[] args) {
System.out.println("Umrechnung vom Zehnersystem");
System.out.println("===========================");

int a = Testscanner2.readInt("Geben Sie die Zahl ein: ");
int b = Testscanner2.readInt("Geben Sie die Basis ein: ");
int c = 0;
int c_um = 0;

while(b < 2 || b > 9) {
System.out.println("Basis muss zwischen 2 und 9 liegen!");
b = Testscanner2.readInt("Geben Sie die Basis ein: ");
}
System.out.print("Die Zahl im "+b+"-ersystem lautet: ");
while(a != 0) {
c = a % b;
a = a / b;
}
while(c != 0) {
c_um = c_um * 10 + c % 10;
c = c / 10;
}
System.out.print(c_um);
}

}
 
Nun habe ich aber das Problem, dass mir die Zahlen (logischerweise) rückwärts ausgegeben werden.
Diese Fehlerbeschreibung verstehe ich schlicht nicht. Was genau passiert da Deiner Meinung nach?

Generelle Hinweise:

a) Code bitte immer in Code-Tags posten (Button </> links oberhalb des Eingabebereichs)

b) Benutz vernünftige Bezeichner. Bezeichner a, b, c, ... sind einfach nur Quatsch. Wenn Du Code unleserlich machst, dann musst Du Dich auch nicht wundern, wenn Du selbst nicht verstehst, was er macht.

Hinweise zur Lösung:
Wenn Du so eine Aufgabe lösen willst, dann spiel es erst einmal mit Stift und Papier durch. Wie wandelt man eine Zahl aus dem 10er System in eine Zahl zu einer anderen Basis um? Wenn Du die notwendigen Schritte im Detail beschrieben / verstanden hast, dann kannst Du es umsetzen.
Daher: Immer erst den Algorithmus selbst erarbeiten. Das geht immer am Besten mit Stift und Papier.
 
Ein Problem am Umrechnen in andere Zahlensystem ist, das der umberechnte Zahlenwert für Java immer noch als Dezimalzahl verstanden wird, solange dieser Wert in einer Variablen vom Typ int, long, double, etc. gespeichert wird. Soetwas ist sehr fehlerträchtig.

Da die umgerechnete Zahl eigentlich nichts anderes als eine Zeichenfolge darstellt, bietet als Datentyp auch ein String an.
Diesem kann bei der Konvertierung dann schrittweise die berechneten Ziffern angehängt werden. Dabei besteht auch noch die Möglichkeit,
die Zeichen vorne, statt hinten anzuhängen.
 

Zurück
Oben