2016-09-16 7 views
0

これはすでにこのタイトルの解決策がたくさんあることを知っています。私はそれらのリンクを通過したが、助けていない

私はJavaの初心者で、私はバイナリ変換プログラムに1つの単純な10進数を書いています。ユーザが10進数の基数10を入力し、2進形式の2の出力を得ます。

私はすでにプログラムを書いていますが、適切な出力が得られていません。私が特定できないものがあります。私は出力が1011111.
しかし、私は101111
が助けてください取得していなければなりませんのは、95を言わせて進数を入力した場合
は、ここでは上記のプログラムで私のコード

出力の小数から2進への変換エラーをプログラムする

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()); 
    } 
} 


です。

答えて

1

numが1のときに停止します。最初に除算を行うと、1つの2進数が欠落します。

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

は次のようになります。

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 
} 
関連する問題