Javaで整数(バイナリで表されている場合)のどのビットがオンになっているかを確認するために、次のコードを作成しました。
public static List<String> list(int val)
{
List<String> dummyList = new ArrayList<String>();
int bit = 1;
int x;
for(int i=0; i<32; i++)
{
x = bit;
if((x&val)!=0)
dummyList.add(String.valueOf(i+1));
bit = bit << 1;
}
return dummyList;
}
上記のコードは正常に動作します。ただし、32 回実行されるループがあります (Java では整数は 32 ビット長です)。この複雑さを最小限に抑えたいと考えています。より良い解決策を共有してください。前もって感謝します。