ubuntuusers.de

[Java] Zahlensysteme umrechnen

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

knacht

Anmeldungsdatum:
16. Mai 2010

Beiträge: Zähle...

Hallo,

zwecks Übung sollen wir für die Schule ein Programm schreiben dass Dezimalzahlen in ein beliebiges anderes System umrechnet. Auf dem Papier kein Problem, allerdings stehe ich gerade auf dem Schlauch und komm ums verrekcne nicht auf die richtige Abbruchbedingung:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
public static String convert(long number, long base){
        String tmp="";
        long remain = 0;


        while (number / base  > 0 ){

             //Rest = Zahl Modulo Basis
             remain = number % base;
             //Zahl = Zahl geteilt Basis
             number = number / base;
             // tmp = Ergbnis, in falscher Reihenfolge
             tmp = tmp + remain;
            
        }

convert (127,8) liefert 77 anstatt 177. Liegt an der Abbruchbedingung in der while Schleife (denke ich) aber ich komm einfach nicht drauf.

Mfg und Danke

EDIT: Habe es jetzt so gelöst

    public static String convert(long number, long base){
        String tmp="";
        String result ="";
        long remain = 0;
        boolean next = true;


        while (next){


             remain = number % base;
             number = number / base;
             tmp = tmp + remain;
             if (number/base ==0){
                 remain = number % base;
                 tmp = tmp + remain;
                next = false;
            }
        }

        StringBuilder sb = new StringBuilder(tmp);
        result = sb.reverse().toString();
        return result;
    }
Antworten |