ConvertBase method
From Feliwiki
public static String convertBase(String positiveInteger, String fromBase, String toBase) {
try {
BigInteger fromBaseValue = new BigInteger(fromBase.length() + "");
BigInteger toBaseValue = new BigInteger(toBase.length() + "");
BigInteger pureNumber = new BigInteger("0");
int c = 0;
for (int i = positiveInteger.length() - 1; i >= 0; i--) {
BigInteger multiplicand = fromBaseValue;
multiplicand = multiplicand.pow(c++);
int digitValue = fromBase.indexOf(positiveInteger.charAt(i));
pureNumber = pureNumber.add(multiplicand.multiply(new BigInteger(digitValue + "")));
}
List<Integer> remainders = new ArrayList<Integer>();
boolean end;
do {
BigInteger[] quotientAndRemainder = pureNumber.divideAndRemainder(toBaseValue);
pureNumber = quotientAndRemainder[0];
int remainder = quotientAndRemainder[1].intValue();
remainders.add(remainder);
end = pureNumber.equals(new BigInteger("0"));
} while (!end);
StringBuilder result = new StringBuilder();
for (int i = remainders.size() - 1; i >= 0; i--) {
result.append(toBase.charAt(remainders.get(i)));
}
return result.toString();
} catch (Exception e) {
throw new NumberFormatException("Invalid conversion! number: " + positiveInteger + " from base " + fromBase + " to base " + toBase);
}
}