B
.Buh
Gast
Hallo,
Ich möchte gerne vom Hex/Oct Zahlensystem ins dezimale umrechnen , da nun aber die zahlen leider öfters größer als ein long werden hab ich mal gegoogelt und "BigInteger" gefunden , nun okay er zählt auch richtig aber leider (nur bei Hex von Octal nach Dezi. gehts ohne problem) bis zur 6/7 stellen
ich habe aber keine ahung wieso , bei: "FFFFFFFF" ist das ergebniss dann plötzlich -1
Ich möchte gerne vom Hex/Oct Zahlensystem ins dezimale umrechnen , da nun aber die zahlen leider öfters größer als ein long werden hab ich mal gegoogelt und "BigInteger" gefunden , nun okay er zählt auch richtig aber leider (nur bei Hex von Octal nach Dezi. gehts ohne problem) bis zur 6/7 stellen
ich habe aber keine ahung wieso , bei: "FFFFFFFF" ist das ergebniss dann plötzlich -1
Java:
public ArrayList<String> allToDezi(String nummer,int base)
{
ArrayList<String> ergebniss = new ArrayList<String>();
String[] stringRechner = nummer.split(""); // Splittet den string mit den zahlen um sie einzelnd mulitplizieren zu können
int multiplikator = 0; // x^multiplikator
BigInteger endErgebniss = BigInteger.valueOf((long) 0);
for(int x = stringRechner.length -1;x > 0;x--) //geht solang durch bis er alle gesplitteten nummer hoch gerechnet hat
{
int nummerRechner = Integer.parseInt(stringRechner[x]); //wandelt die zahl in einen int um
BigInteger nummerPow = BigInteger.valueOf(base);
nummerPow = nummerPow.pow(multiplikator); // rechnet schonmal zb 16^12(multiplikator)
BigInteger nummerErgebniss = nummerPow.multiply(BigInteger.valueOf(nummerRechner)); // x * (x^mulitplikator)
ergebniss.add(nummerRechner + "·" + base + "^" + multiplikator + " = " + nummerErgebniss); // Fügt das zur ArrayList<String> hinzu
endErgebniss = endErgebniss.add(nummerErgebniss); // Am ende das ergebniss was raus kommt wenn man alles addiert ( das was falsch angezeigt wird)
multiplikator++; //den multiplikator erhöhen
}
ergebniss.add("Ergebniss : " + endErgebniss); // Fügt das zur ArrayList<String> hinzu
return ergebniss;
}