Nein, du dividierst basis / number und übergibst das Ergebnis der Division.aus der Main Methode, habe ich der Methode PrintNumberSystem, ein wert für basis und ein wert für number gegeben
printNumberSystem(number / basis, basis);
public static void main (String [] args){
printbinary(324);
printNumberSystem(300, 8);
}
static String binärzahl = "";
public static void printbinary(long number){
if(number == 0){
System.out.print(binärzahl);
}
else{
binärzahl = (number%2)+binärzahl;
printbinary(number / 2);
}
}
static String zahl = "";
public static void printNumberSystem(long number, int basis){
if (basis<=2 || basis >= 10)
System.out.println("Die Basis darf nicht kleiner als 2 oder größer als 10 sein!");
else
if(number == 0){
System.out.println(zahl);
}
else{
zahl = (number%basis)+zahl;
printNumberSystem(number / basis, basis);
}
}
}
public static String convertToHex(int zahl) {
//einzelne Stelle berechnen
int rest = zahl%16;
String singleLetter;
if (rest < 10) {
singleLetter = String.valueOf(rest);
} else {
singleLetter = String.valueOf((char) ('A' + rest - 10));
}
//und hier eben das Ergebnis einsetzen:
if (zahl > 15) {
return convertToHex(zahl / 16) + singleLetter;
} else {
return singleLetter;
}
}
public static void printNumberSystem(long number, int basis) {
String[] zeichenArray = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"};
if (basis < 2 || basis > 16) {
System.out.println("Die Basis darf nicht kleiner als 2 oder größer als 10 sein!");
} else if (number == 0) {
System.out.print(zahl);
} else {
zahl = zeichenArray[(int)number % basis] + zahl;
printNumberSystem(number / basis, basis);
}
}