# Ausgabe Rückwärts ausgeben??



## Standard (21. Jan 2010)

Hallo Leute,

ich lerne gerade Java. Schreibe ein Programm, dass eine Dezimalzahl in ein BinärCode berechnet. Leider gibt er nicht: 1100100 raus, sondern logischerweise 0010011 raus (also den BinärCode falsch herum). Kann ich das irgendwie umdrehen?


```
package dezimal;

public class dezimal {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		int zahl = 100;
		int rest;
			while (zahl !=0){
				rest = zahl % 2;
				zahl = zahl / 2;
				System.out.print(rest);
		}
		
	}

}
```



Gruß

Standard


----------



## eRaaaa (21. Jan 2010)

Hehe da du ja jetzt schon eine Lösung hast, könntest du einfach einen StringBuilder benutzen dir einen String zusammenbauen und diesne dann rückwärts ausgeben 


```
int zahl = 100;
	int rest;
	StringBuilder builder = new StringBuilder();
	while (zahl != 0) {
	    rest = zahl % 2;
	    zahl = zahl / 2;
	    builder.append(rest);
	}
	System.out.println(builder.reverse());
```
:bae:


----------



## Final_Striker (21. Jan 2010)

jep, merken und rückwärts ausgeben wäre glaube ich die einfachste möglichkeit.


----------



## Mujahiddin (21. Jan 2010)

hm...
also eine zahl umgekehrt wiederzugeben, da würde ich so vorgehen:

```
String s = Integer.toString(rest);
int laenge = s.length();
String[] strArr = new String[laenge];
for(int i=0; i<laenge; i++)
{
  strArr[i] = Character.toString(s.charAt(laenge-1-i));
}
String binaer = "";
for(int i=0; i<laenge; i++)
{
  binaer = binaer + strArr[i];
}
System.out.println(Integer.parseInt(binaer));
```

das integer.parseInt am schluss ist nicht notwendig..
ps: untested..


edit: klar, das mit dem stringbuilder ist auch nicht schlecht  aber hätt ich die methode gekannt, hätt ichs auch so gemacht... meins ist eher für die 'low java coder'


----------



## eRaaaa (21. Jan 2010)

Mujahiddin hat gesagt.:


> edit: klar, das mit dem stringbuilder ist auch nicht schlecht  aber hätt ich die methode gekannt, hätt ichs auch so gemacht... meins ist eher für die 'low java coder'



Och wieso, es geht ja hier schließlich um den Lernerfolg und da kann man`s eig. nicht kompliziert genug machen 
Ansonsten hätte man ja auch direkt:

```
int zahl = 100;
	System.out.println(Integer.toBinaryString(zahl));
```

schreiben können


----------



## Mujahiddin (21. Jan 2010)

^^ ja klar, ist auch ne möglichkeit...
ist schon erstaunlich, wie viele wege es gibt, zu einem ziel zu kommen


----------



## Standard (21. Jan 2010)

danke euch.
@ERaaaa
so darf ich das leider nicht machen ;-)

leider weiß ich nicht so recht, was ein String ist usw..wo kann ich mir das aneignen mit dem String?


----------



## Mujahiddin (21. Jan 2010)

String = Anreihung von Zeichen... "Hallo, dies ist ein String"
^^


----------



## eRaaaa (21. Jan 2010)

Standard hat gesagt.:


> @ERaaaa
> so darf ich das leider nicht machen ;-)


schon klar 



> leider weiß ich nicht so recht, was ein String ist usw..wo kann ich mir das aneignen mit dem String?



String: Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 4.2 Strings und deren Anwendung

StringBuilder/Buffer: Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 4.4 Veränderbare Zeichenketten mit StringBuilder/StringBuffer


----------



## Gorac (22. Jan 2010)

also ich würds spontan in ein array speichern und nicht in ein string. du kennst ja deine dezimal zahl. damit weißt du wie lang maximal deine binär zahl wird. somit kannst du errechnen wieviel platz dein array brauch. dann nimmst du deinen algorithmus und speicherst einfach jede zahl ins array (von hinten angefangen nach vorn). und dann kannst du die zahlen einfach nacheinander ausgeben.

ich hoffe ich hab mich halbwegs verständlich ausgedrückt. es ist freitag 16:13 ^^


----------

