Morgen!
Also, ich habe ein Problem.
Ich soll ein Programm verwirklichen was Werte aus einen Zahlensysteme ( binär, oktal, etc.) miteinander addiert.
Dabei soll ich keine if, while, strings etc. benutzen, sondern nur das einfachste.
Hab mir dann paar gedanken gemacht und bin auf die idee gekommen z.b. wenn wir die Zahl 1001 und 11 miteinander addieren sollen, die Zahlen per Hornerschema ins dezimalsystem umzuwandeln und diese dann miteinander addieren.
Die Lösung dann wieder ins binärsystem, anhand der basis in der eingabe zurückzuwandeln.
Das funktioniert tadelos, das Problem ist, mein Programm kann von dezimal in oktal bzw. stellwertsystem 8 und 4 nicht richtig umrechnen.
Bin die werte parallel im windows taschenrechner durchgegangen und leider is mein "algorithmus" falsch, aber ich weiss nicht woran es liegt.
Habe halt 3 Methoden, umwandlung des Stellenwertsystems in Dezimal, Addition der beiden werte, Rückwandlung der Dezimalzahl(Lösung) ins Stellenwertsystem ( anhand der basis bzw. eingabe).
Könnte sich jemand meine "code" bzw. die methode angucken und mir maybe helfen woran es liegt, das er dezimalzahlen ins oktalsystem umwandelt, obwohl es ja nachdem hornerschema richtig sein sollte.
ich wäre über eine kleine hilfe, sehr dankbar. hab mir die letzt 4 tage so den kopf daran zerbrochen und ich finde keine lösung bzw. den fehler.
Also, ich habe ein Problem.
Ich soll ein Programm verwirklichen was Werte aus einen Zahlensysteme ( binär, oktal, etc.) miteinander addiert.
Dabei soll ich keine if, while, strings etc. benutzen, sondern nur das einfachste.
Hab mir dann paar gedanken gemacht und bin auf die idee gekommen z.b. wenn wir die Zahl 1001 und 11 miteinander addieren sollen, die Zahlen per Hornerschema ins dezimalsystem umzuwandeln und diese dann miteinander addieren.
Die Lösung dann wieder ins binärsystem, anhand der basis in der eingabe zurückzuwandeln.
Das funktioniert tadelos, das Problem ist, mein Programm kann von dezimal in oktal bzw. stellwertsystem 8 und 4 nicht richtig umrechnen.
Bin die werte parallel im windows taschenrechner durchgegangen und leider is mein "algorithmus" falsch, aber ich weiss nicht woran es liegt.
Habe halt 3 Methoden, umwandlung des Stellenwertsystems in Dezimal, Addition der beiden werte, Rückwandlung der Dezimalzahl(Lösung) ins Stellenwertsystem ( anhand der basis bzw. eingabe).
Könnte sich jemand meine "code" bzw. die methode angucken und mir maybe helfen woran es liegt, das er dezimalzahlen ins oktalsystem umwandelt, obwohl es ja nachdem hornerschema richtig sein sollte.
Code:
public static long dezimalInStelle(long dezimalZahl, int basis) {
return (dezimalZahl > 0)
? ((dezimalInStelle(dezimalZahl / basis, basis) * 10) + dezimalZahl % basis)
: dezimalZahl % basis;
}
ich wäre über eine kleine hilfe, sehr dankbar. hab mir die letzt 4 tage so den kopf daran zerbrochen und ich finde keine lösung bzw. den fehler.