2016-09-16 3 views
0

Okay, ich weiß, es gibt bereits viele Lösungen für diesen Titel. Ich bin durch diese Verbindungen gegangen, aber half nicht

Ich bin neu zu Java und ich schreibe ein einfaches Dezimal zu binäre Umwandlungsprogramm. In dem ein Benutzer wird die Dezimalzahl Basis 10 eingeben und erhalten die Ausgabe in binärer Form Basis 2.
Ich habe bereits ein Programm geschrieben, aber ich bekomme nicht die richtige Ausgabe. Etwas fehlt, das ich nicht identifizieren kann.
Hier ist mein Code

Programm Dezimal zu Binär Konvertierung Fehler in der Ausgabe

import java.util.Scanner; 
class BinaryConversion{ 
    public static void main(String[] args){ 
     Scanner scan = new Scanner(System.in); 
     System.out.println("Enter the decimal number to convert into binary"); 
     int num = scan.nextInt(); 
     StringBuilder BinaryString = new StringBuilder(); 
     BinaryString.setLength(0); 
     while(num!=1){ 
      num/=2; 
      int r = num%2; 
      BinaryString.append(Integer.toString(r)); 
     } 
     System.out.println(BinaryString.reverse()); 
    } 
} 


Im obigen Programm Wenn ich die Dezimalzahl mal 95 sagen, geben Sie die Ausgabe 1011111.
sein sollte, aber ich bin immer 101111
Bitte helfen.

Antwort

1

Sie stoppen, wenn num gleich 1 ist. Und wenn Sie die Division zuerst machen, würde eine Binärstelle fehlen.

while(num!=1){ 
    num/=2; 
    int r = num%2; 
    BinaryString.append(Integer.toString(r)); 
} 

wäre:

while (num > 0) { // till the remaining is greater than zero   
    int r = num % 2; // at first fetching the modulus result 
    BinaryString.append(Integer.toString(r)); 
    num /= 2; // then dividing 
}