# Dezimalzahl in eine Binärzahl umrechnen



## peterp (8. Dez 2014)

Hallo könnte mit einer helfer wie ich da am besten Anfangen kann.
Ausgabe der Binärdarstellung einer Ganzzahl sowie die Rechnungsschritte.
gewünschte Ausgabe des Programms für Beispielwert 42:
Wichtig ist die Methode Integer.toBinaryString()
14 / 2 = 7 R 0
7 / 2 = 3 R 1
3 / 2 = 1 R 1
1 / 2 = 0 R 1

Die Zahl 14 in Binärdarstellung ist 1110


----------



## Gucky (8. Dez 2014)

Und was ist deine Frage? Ich sehe nicht einmal ein Fragezeichen


----------



## peterp (9. Dez 2014)

ich weiß nicht wie ich die Methode Methode Integer.toBinaryString() einsetzten soll .


----------



## VfL_Freak (9. Dez 2014)

Moin,

ist Google kaputt ??? :noe:
Integer: toBinaryString(int intValue) : Integer « java.lang « Java by API

Gruß
Klaus


----------



## peterp (9. Dez 2014)

Kann mir einer sagen was ich falsch programmiert habe ?



```
int b =InputTools.readInteger("zahl eingeben");
        
            
            int c = b%2;
            int wert = b/2 ;
            int wer=wert/2;
            int we=wer/2;
            int w=we/2;
    
            

            if (wert%2==0  | wer%2==0 | c %2==0 ){
                System.out.println(b+"R"+"0");
                System.out.println(wert+"R"+"0");
                System.out.println(wer+"R"+"0");
                
            
            }
            
             else
            System.out.println(b+"R"+"1");
            System.out.println(wert+"R"+"1");
            System.out.println(wer+"R"+"1");
    

            
             System.out.println(Integer.toBinaryString(b));

            
}}
```


```
Konsole:zahl eingeben12
12R0
6R0
3R0
6R1
3R1
```


----------



## Joose (9. Dez 2014)

peterp hat gesagt.:


> Kann mir einer sagen was ich falsch programmiert habe ?
> 
> ```
> if (wert%2==0  | wer%2==0 | c %2==0 ){
> ...



1.) Ein logische ODER wird in Java mit "||" geschrieben.
2.) Wenn du bei einem if bzw. else keine Klammern machst wird nur das 1. darauf folgende Statement beachtet. Sprich dein "else" zieht nur bei einem der "System.out.println", die anderen beiden werden immer ausgegeben.

Allgemein ist dein Code logisch leider völlig falsch.
Du hast doch dein Beispiel mit der Zahl 14. Wie würdest du es am Papier machen (Schritt für Schritt)?


----------



## peterp (9. Dez 2014)

Ich würde es so machen 
14 / 2 = 7 R 0
7 / 2 = 3 R 1
3 / 2 = 1 R 1
1 / 2 = 0 R 1
 ich hab es mit modulo versucht klappt aber leider nicht


----------



## VfL_Freak (9. Dez 2014)

Moin,



peterp hat gesagt.:


> klappt aber leider nicht


und was genau bedeutet das?
Was erwartest Du an welcher Stelle und was passiert stattdessen ??)

Gruß
Klaus


----------



## peterp (9. Dez 2014)

ich möchte das die Konsole mir die einzelnen Rechenschritte ausgibt. Ich aber nicht weiß wie ich das hinschreiben kann
.ist diese Ansatz richtig oder kann man das einfacher hinschreiben?
	int b =InputTools.readInteger("zahl eingeben");

			int wert = b/2 ;
			int wer=wert/2;
			int we=wer/2;
			int w=we/2;

			if (wert%2==0 || wer%2==0 || we%2==0|| w%2==0)

			System.out.println("wert"+"R"+"0");

			 System.out.println(Integer.toBinaryString(b));
			 }


----------



## Joose (9. Dez 2014)

peterp hat gesagt.:


> 14 / 2 = 7 R 0



Nimm dir einfach mal diese Zeile her:
1.) Ergebnis der Division berechnen => 14 / 2 = 7
2.) Rest der Division berechnen => ? = 0

Was musst du statt dem Fragezeichen einsetzen? Die sollte ja eigentlich ein variable Wert sein, kann man also durch eine lokale Variable ersetzen.
Das Ergebnis der Division musst du zwischenspeichern da du damit ja weiterrechnen musst.
Schon hast du 2 Anweisungen welche du nur wiederholen musst (Schleife) bis das Ergebnis der Division gleich 0 ist.

EDIT: Dein Ansatz bisher ist nicht wirklich richtig. Vor allem da du damit nur Binärzahlen mit 4 Stellen berechnen kannst. Probiere mal 385628 umzurechnen mit deinem Code


----------



## peterp (9. Dez 2014)

das 1. hab ich ja int wert = zahl/2 ;

```
for (wert=zahl; wert<zahl; wert/2)
System.out.println.(wert);
 if (wert/2==0){
return}
```
meinst du das etwas so?


----------



## Joose (9. Dez 2014)

Bitte verwende für Java Code die 
	
	
	
	





```
-Tags!

Probiere diesen Code doch einfach aus, das geht schneller und einfacher als hier auf eine Antwort zu warten.
Nein leider wird dieser Code nicht funktionieren. Es fehlen "{}" und "println.(wert)";" enthält ebenfalls einen Fehler.
Es fehlt noch die Anweisung um den Rest zu berechnen.
```


----------



## peterp (9. Dez 2014)

Kannst du mir starthilfe geben und den Anfangscode hinschreiben ich komm nicht drauf


----------

