Na, das schaffst du schon! Hab's gerade mal gemacht und (ohne die Sonderbehandlung mit dem -1, die ich erstmal weglassen würde) sind es wirklich seeeehr kleine Einzeilermethoden. Ich würde dir raten, eine Methode `to10(long value, int sourceBase)` zu machen, die einen gegebenen Wert (interpretiert in der Quellbasis `sourceBase`) ersteinmal wieder in einen vernünftigen Wert rückwandelt (also in einen long, der dieser Wert wäre, würde er nicht in der 10-er Basis als die andere Basis interpretiert geschrieben worden sein - wenn der Satz Sinn macht

).
Dann würde ich eine `from10(long value, int destinationBase)` Methode bauen, die genau das Gegenteil tut: Sie nimmt einen richtig ausgerechneten Wert entgegen und konvertiert ihn so, dass der Wert wiederum als 10-er Basis interpretiert ausgegeben den richtigen String generiert. Dann brauchst du nur noch eine `add` Methode, die die beiden Parameter mit `to10` erstmal "korrigiert", dann eine Standard-Java Addition durchführt, und dann das Ergebnis mit `from10` wieder rückkonvertiert, so dass die Zahl dann eben, wenn sie etwa per System.out.println() ausgegeben wird - was ja in der Basis 10 interpretiert - nur noch Ziffern der gewünschten Basis enthält.
Für einen kurzen Test, ob die Konvertierung mit to10/from10 richtig ist, hatte ich kurz das hier verwendet:
https://www.tools4noobs.com/online_tools/base_convert/