2012-04-13 12 views
0

DecimalをBinaryに変換するメソッドを作成しようとしています。ここでは(正常に動作していないもの)、私がこれまでに書いたものです:10進数から2進数への変換で正しくない関数ですか?

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

ここに小数はありませんあなたが実際にやっていることは、印刷可能なASCIIに変換することです。 – EJP

答えて

2

私はあなたのループ内の条件が間違っていると思う:

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

tempDecimalが0に等しいときにこのループことに注意してください、これは、ループがゼロでない入力に対してループしてはならず、ゼロの入力に対して永久にループすることを意味します。

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

また、入力として0を、入力としては負けてください。彼らはあなたの現在のアプローチで正しく出てこないでしょう。

その他いくつかのマイナーなニット:

  • は、私は強く正しくコードをインデントし、読みやすくするための演算子の間に、空白を置くことをお勧めします。コードを読むのがはるかに簡単になりました。スペースを増やせば、バグを見つけやすくなりました。
  • この関数では、2番目の変数tempDecimalを作成する必要はありません。 Javaのパラメータは値によって渡されるため、引数に対する変更は呼び出し元には表示されません。他の場所でdecimalの値を使用していないので、余分な変数は余分です。

+0

ohh ..私の間違い...助けてくれてありがとう... –

+0

アドバイスをいただきありがとうございます...私はプログラミングのために新しいです...ルールをプログラミングすることはあまり知られていません。それは決して起こらない時間...もう一度ありがとう... –

関連する問題