2012-04-13 13 views
0

Ich versuche, eine Methode zu erstellen, die Dezimal in Binär konvertiert. Hier ist, was ich bisher geschrieben (die nicht ordnungsgemäß funktioniert):Falsche Funktion für die Dezimal-zu-Binär-Konvertierung?

public static String D2B(int decimal){ 
    String binaryValue=""; 
    for (int tempDecimal=decimal;0==tempDecimal;tempDecimal/=2){ 
     binaryValue=tempDecimal%2+binaryValue; 
    } 
    return binaryValue; 
} 


public static void main(String[]args){ 
    int myValue=127; 
    System.out.println(D2B(myValue)); 
} 
+0

Hier gibt es keine Dezimalstelle Was Sie wirklich tun, ist das Konvertieren in druckbares ASCII. – EJP

Antwort

2

Ich denke, die Bedingung in der Schleife nicht korrekt ist:

for(int tempDecimal=decimal;0==tempDecimal;tempDecimal/=2) 

Beachten Sie, dass diese Schleifen während tempDecimal gleich 0 ist, Das bedeutet, dass die Schleife bei Nicht-Null-Eingängen überhaupt keine Schleife bilden sollte und für immer auf Null-Eingänge laufen wird. Versuchen Sie Umschreiben es als

for(int tempDecimal = decimal; 0 != tempDecimal; tempDecimal /= 2) 

Auch achten Sie auf 0 als Eingang und für negative Zahlen als Eingänge; Sie werden mit Ihrem derzeitigen Ansatz nicht korrekt ausgehen.

Einige andere kleinere Nits:

  • ich stark Ihr Code korrekt und setzen Räume in-zwischen den Betreibern zur besseren Lesbarkeit vorschlagen einrücken. Es macht den Code viel einfacher zu lesen, und ich denke, Sie hätten den Fehler leichter entdeckt, wenn Sie mehr Leerzeichen hätten.
  • Es gibt keinen Grund, eine zweite Variable tempDecimal in dieser Funktion zu erstellen. Java-Parameter werden als Wert übergeben. Änderungen, die Sie am Argument vornehmen, werden daher nicht im Aufrufer angezeigt. Da Sie den Wert decimal nirgendwo anders verwenden, ist die zusätzliche Variable überflüssig.

Hoffe, das hilft!

+0

ohh .. mein Fehler ... Danke für Hilfe ... –

+0

Danke für die Ratschläge ... Ich bin neu für die Programmierung ... Ich weiß nicht viel über Programmierregeln .. Jetzt habe ich das ... als nächstes es passiert nie ... Danke nochmal ... –

Verwandte Themen