2011-11-12 19 views
2

私は、2のべき乗に分解された特定の数値を返すプログラムを作成しようとしています。たとえば、45は "2^5 + 2^3 + 2^2 + 2^0"と表示されるので、数字を基数2に変換して文字列に変換し、インデックスを見つけて私が望む結果。しかし、インデックスを返そうとすると、最初に見つかったインデックスがすべて取得されます。誰もこの部分で私を助けることができますか?ループ内の文字列のインデックスを見つける

+3

['Integer.toBinaryString()'](http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html#toBinaryString(int%29) – NullUserException

答えて

0

文字列には、「0」または「1」が含まれています。

String dig = String.valueOf(num); 

あなたはこの代わりにしたい:このアルゴリズムは、あなたの仕様に比べて逆の順序で用語を印刷することも

int power = 0; 
while (aux > 0) { 
     int num = aux % 2; 
     if (num == 1) { 
     // Print next term 
     } 
     power++; 
     aux /= 2; 
} 

注意を。