[Java] Werte nach For - Schleife zu Zahl zusammenführen?

topfklao

Christoph N.
ID: 118468
L
20 April 2006
885
17
Hi Hi!!!

Ich als Javaanfänger habe leider folgendeds Problem :-? :

PHP:
int berechnen (int zahl){
int modu= 2;
int rest = zahl;
int ergebnis = 0;
    
    for (int y = 1;rest > 0;y++){
        
        int teilergebnis = rest % modu;
        rest = rest/modu;
        ergebnis = ????
         
    }
    
    ergebnis = ????

    return ergebnis;
}
Mein Ziel ist es nun die einzelnen Teilergebnisse in der Forschleife, die ja der Reihe nach ausgegeben werden; als eine Zahl zusammengefasst (nicht addiert etc!!) zu erhalten....
Doch wie mache ich das? Aufaddieren wäre ja keine Problem...

Noch ein kleines Beispiel zur Verdeutlichung:
Ausgaben der For Schleife wären:
Ich möchte dann als Int ergebnis 123 haben; also die reine Aneinanderreihung der Zahlen!


Danke für eure Hilfe!
icon7.gif
 
Zuletzt bearbeitet:
Code:
[FONT="Courier New"]    for (int y = 1;rest > 0;y++){
        
        int teilergebnis = rest%modu;
        rest = rest/modu;
        [B]ergebnis += teil * 10^(y-1);[/B]
         
    }
    
     return ergebnis;[/FONT]

Wir haben ein Dezimalsystem! :p

Code:
[FONT="Courier New"]int modu= "2";[/FONT]
Sowas ist erlaubt? 8O

Edit: Keine Ahnung ob syntaktisch richtig.. bin kein Java-Kenner.
 
Zu früh gefreut!!!
:(

Das:
ergebnis += teil * 10^(y-1);geht leider nur für einen String. Aber am Ende brauche ich einen Int - Wert und für den zählt er immer rauf!
Oder kann ich String in Int konvertieren?
 
Das:
ergebnis += teil * 10^(y-1);geht leider nur für einen String. Aber am Ende brauche ich einen Int - Wert und für den zählt er immer rauf!
Oder kann ich String in Int konvertieren?

Was geht da genau nicht?
Vielleicht einfach nur
ergebnis = ergebnis + ...
schreiben?

Edit: Wie gesagt.. ich habe mich mit der Syntax von Java nicht befasst. Meinst du den Operator, den es nur für Strings gibt? Dann wie gesagt mach das wie nun neu vorgeschlagen. Ansonsten hab ich dich nicht verstanden.

Lahmes Forum. ^_o

Edit: Ach so.. meine Lösung hat die Anzahl der Stellen natürlich nicht berücksichtigt und ist deswegen wenig brauchbar. Darauf aufbauen könnte man höchstens. Aber ich denke das mit der Zusammensetzung des Strings wird dann auch schneller gehen, oder?

*weq*
 
Was geht da genau nicht?
Vielleicht einfach nur
ergebnis = ergebnis + ...
schreiben?
Also das geht leider nicht.. Wie du ja selbst schon sagst... ;)
Das Integer.parseInt() ist schon mal nicht schlecht...

Aber der Weg, dass ich gleich einen Int bekommen würde, wäre wohl am besten...:roll:
 
Zuletzt bearbeitet:
Oh mannnnn.. Jetzt hab ich mich da fatalerweise auch noch verschrieben.... Ich meinte natürlich , dass ich möglichst einen Int - Wert nach der For - Schleife will..

Anmerkung zu: Integer.parseInt()
Habe da folgendes probiert:+

String string1 = "100001111101111011001100111100110101111010";
int zahl2 = Integer.parseInt(string1);

Was aber zu folgender Fehlermeldung führt:
Exception in thread "main" java.lang.NumberFormatException: For input string: "100001111101111011001100111100110101111010"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:459)
at java.lang.Integer.parseInt(Integer.java:497)
at uebung3_a.Zahlensystemrechner.transform(Zahlenrechnersystem.java:50)
at uebung3_a.Main.main(Main.java:28)
 
Zuletzt bearbeitet:
Seh ich's richtig, dass Du 'nen Int binär darstellen willst?
PHP:
int foo = 23417;
System.out.println(Integer.toString(foo, 2));
Einfacher geht's kaum. ;)
 
Seh ich's richtig, dass Du 'nen Int binär darstellen willst?
PHP:
int foo = 23417;
System.out.println(Integer.toString(foo, 2));
Einfacher geht's kaum. ;)
Nein nicht unbedingt......

War nur ein Beispiel!
Im Prinzip gehts mir jetzt darum Int - Werte in der For - Schleife aneinander zu fügen. Also einen Int, der mit jedem Durchlauf größer wird. Aber nicht addieren, sondern aneinader fügen!!!

Danke für eure Hilfe!