# Umwandlung in verschiedene Zahlensysteme



## GreenJava (23. Nov 2011)

Hallo!

Nun, ich habe schon gesucht und gegooglet, aber nichts passendes gefunden.

Ich möchte gerne eine Zahl in die anderen 3 Zahlensyste umwandeln.
Beispiel: Habe ich 
DEZIMAL: x
HEX: x
OCT: x
BINÄR: x

etwas in Dezimal eingegebn, wird Hex, Oct und Binär berechnet.

Nunhabe ich schon vordefinierte Methoden von Java gefunden

```
toBinaryString(int i), toHexString(int i), toOctalString(int i)
```

Aber so richtig funktioniert das nicht...

Ich hab' da was versucht, aber so richtig funktioniert das nicht.


```
public class Editor {


	public static void main(String[] args) {
		int i = 20;
		String x = "Test";
		
		System.out.println(Long.toOctalString(Long.parseLong(x)));
		

	}

}
```

Das hab' ich irgendwo gefunden, was mir aber nicht weiterhilft.

Vielen Dank im Vorraus.


----------



## yyannekk (23. Nov 2011)

Das funktioniert nicht weil du einen String ( "Test" ) in den Typ Long konvertierst und dann versuchst davon die Octaldarstellung zu bekommen.
so zB sollte es klappen:
System.out.println(Long.toBinaryString(5));


----------



## GreenJava (23. Nov 2011)

yyannekk hat gesagt.:


> Das funktioniert nicht weil du einen String ( "Test" ) in den Typ Long konvertierst und dann versuchst davon die Octaldarstellung zu bekommen.
> so zB sollte es klappen:
> System.out.println(Long.toBinaryString(5));



Hallo,

ja das funktioniert! Ist es aber nun auch möglich, der Übersicht halber, den Binärcode nach 4 Zeichen ein Leerzeichen und am Ende einen "." einzufügen?

Direkt gesagt, ich möchte auch versuchen IP Adressen (z.B.: 192.168.0.0) umzuwandeln (nur Binär).


----------



## pro2 (23. Nov 2011)

Klar, am besten schreibst du es wieder in n String rein und musst ihn dann dementsprechend formatieren. Gibt diverse Methoden für diese Formatierung, für genaueres entweder googlen oder jemand anderes muss dir helfen.

edit: Java ist auch eine Insel – 4.7 Formatieren von Ausgaben 
Könnte auch helfen.


----------



## yyannekk (23. Nov 2011)

```
String ip = "192.168.0.1";

String tmpString = ""; //wird in der Schleife benötigt
for(int i = 0; i < ip.length(); i++) //wir müssen an jeder Stelle der IP einmal "entlang"
{
       if(ip.charAt(i)!='.') //wenn an der Stelle i im Text kein Punkt steht dann:
       {
              tmpString+=ip.charAt(i); // "Buchstabe" i aus ip an tmpString dranhängen
       }
       else //wenn da ein Punkt ist dann Zahl auswerten und tmpString "löschen" um im nächste Zahl zu lesen
       {
            int dezimalZahl = Integer.parseInt(tmpString); //Von String -> int
            System.out.println("\nDezimal: " + dezimalZahl);
            System.out.println("Hex: " + Integer.toHexString(dezimalZahl));
            System.out.println("Oktal: " + Integer.toOctalString(dezimalZahl));
            System.out.println("Binär: " + Integer.toBinaryString(dezimalZahl));
            tmpString="";//tmpString wieder löschen sonst wird oben wieder mehr drangehängt
        }
}
```


----------

