小编Com*_*met的帖子

Java中的整数用于哪个位

我编写了这段代码来检查Java中Integer(如果用二进制表示)的哪些位是打开的:

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;
}
Run Code Online (Sandbox Code Playgroud)

上面编写的代码工作正常.但是它有一个运行32次的循环(在Java整数中是32位长).我想尽量减少这种复杂性.请分享更好的解决方案.提前致谢.

java bit-manipulation

5
推荐指数
1
解决办法
1532
查看次数

标签 统计

bit-manipulation ×1

java ×1