Hallo,
ich habe hier ein Programm, was Zahlen in Dualzahlen umrechnen soll.
Irgendwo ist aber ein Fehler, denn es wird immer eine Stelle zuviel vorne drangehängt.
Bei Eingabe von 4 z.B. müsste 100 rauskommen.
Es kommt aber 1100 raus.
Zum Verständnis: Das Ergebnis wird falschherum ausgegeben also für 4 kommt 001 raus.
Kann mir jemand erklären warum das passiert?
Die If-Anweisung dürfte für 1 doch gar nicht mehr ausgeführt werden, da 1>1 falsch ist.
ich habe hier ein Programm, was Zahlen in Dualzahlen umrechnen soll.
Irgendwo ist aber ein Fehler, denn es wird immer eine Stelle zuviel vorne drangehängt.
Bei Eingabe von 4 z.B. müsste 100 rauskommen.
Es kommt aber 1100 raus.
Zum Verständnis: Das Ergebnis wird falschherum ausgegeben also für 4 kommt 001 raus.
Kann mir jemand erklären warum das passiert?
Die If-Anweisung dürfte für 1 doch gar nicht mehr ausgeführt werden, da 1>1 falsch ist.
Java:
public class Aufgabe1_Dualzahlen_rekursiv {
static void Dualrek (int n)
{
int erg=0;
int modulo=0;
if(n>1)
{
for(int i=1;i>=0;i++)
{
erg = erg + n/2;
modulo = modulo + n % 2;
n=erg;
if (modulo==1)
{
System.out.print(modulo);
Dualrek(n);
break;
}
if(modulo==0)
{
System.out.print(modulo);
Dualrek(n);
break;
}
}
}
if(n==1)
{
System.out.print("1");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int zahl = Eingabe.readInt("Bitte Zahl eingeben:");
Dualrek(zahl);
}
}