Zahlensysteme Hilfe!...

vin030

Mitglied
Erstellen Sie ein Programm Umrechnung im Paket praktikum4, welches mit einem selbst zuerstellenden Algorithmus die Umrechnung einer positiven Dezimalzahl (int) in ein Zahlensystem mit einer Basis (int) zwischen 2 und 16 durchführt. Für Stellenwerte größer 9 sind Buchstaben (A, B, C,…) zu verwenden. Die Stellenwerte sind in einer String – Konstanten zu hinterlegen. Prüfen Sie bei der Eingabe die Dezimalzahl und die Basis und beenden Sie bei Verletzung der Anforderungen das Programm mit einer entsprechenden Fehlermeldung.

Ich bekomme es nicht umgesetzt ...
 

vin030

Mitglied
@Flown

Java:
package praktikum4;

import util.IO;

public class StringSpilt {

    void execute(){
  
    System.out.println("Programm zur Umrechnung von Zahlensystem (Basen von 2-16)");
    System.out.println("Bitte geben Sie die gewschte Base an:");
    int ziffer = IO.readInt("");
    System.out.println("jetzt nur noch eine positive Zahl angeben die Sie konvertieren m鐼hten");
    int base = IO.readInt("");
  
  
    int [] baseArray = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; {for(
    int i = 0;i<baseArray.length;i++)
    {
        if (baseArray[i] == base)
            convert (ziffer, baseArray[i]);
    }
    }

public String convert (int num, int base){
    String convertedNumber = "";
    StringBuilder b = new StringBuilder (convertedNumber);
  
    while (number != 0)
    {
        b.append(String.valueOf(num%base));
        num/=base;
    }
  
    return b.reverse ( ;
    }

    public static void main(String[] args) {
        StringSpilt prg = new StringSpilt();
        prg.execute();
    }

      
    }

    private void convert(int ziffer, int i) {
        // TODO Auto-generated method stub
      
    }
}
 
Zuletzt bearbeitet:

vin030

Mitglied
@Flown
Die gesamte Berechnung ich gebe die Basis ein und die gewünschte Zahl und dann passiert einfach nichts ich erkenne weder das Problem noch weiß ich ob das erzeugte Array so sinnvoll war .:oops:
 

Flown

Administrator
Mitarbeiter
Angaben sind immer fast wie ein Rezept. Weißt du was eine Stringkonstante ist und wie man diese deklariert?(Tipp: da stehen alle Zahlen von 0-9A-F drinnen).
 

vin030

Mitglied
Willst du darauf hinaus dass ich die Zahlen durch ein String ersetzen soll ? Das wäre der nächste Schritt gewesen aber mein Problem ist bisher funktioniert nicht mal die Berechnung.
 

Flown

Administrator
Mitarbeiter
Eigentlich wollte ich dir ja zu einem "AHA-Moment" verhelfen, wenn du selbst darauf kommst, aber es ist Wochenende und du bist ja schon knapp dran:
Java:
public class Test {
  public static void main(String... args) {
    for (int i = 2; i <= 16; i++) {
      System.out.println(i + ": " + convert(1_000_000, i));
    }
  }
 
  private static final String DIGITS = "0123456789ABCDEF";
 
  public static String convert(int number, int base) {
    if (number < 0) {
      throw new IllegalArgumentException("Number to convert must be positive.");
    }
    if (base < 2 || 16 < base) {
      throw new IllegalArgumentException("Can only convert to a base between 2 <= base <= 16");
    }
    if (number == 0) {
      return "0";
    }
    String result = "";
    for (int n = number; n != 0; n /= base) {
      result = DIGITS.charAt(n % base) + result;
    }
    return result;
  }
}
Schönes Wochenende
 

Oben