如何将整数的二进制表达式输入到java中的bitSet中

时间:2014-04-17 02:42:51

标签: java binary bitset

如何将整数的二进制表达式输入到java中的bitSet中?

a = 15我想把1111放到bitSet中,

有这个功能吗?

2 个答案:

答案 0 :(得分:6)

BitSet有一个静态valueOf(long[])方法

  

返回包含给定long数组中所有位的新位集。

所以一个长的数组将有64位,一个有两个长的数组将有128位等等。

如果您只需要从单个BitSet值中获取int,请按原样使用

Integer value = 42;
System.out.println(Integer.toBinaryString(value));
BitSet bitSet = BitSet.valueOf(new long[] { value });
System.out.println(bitSet);

打印

101010
{1, 3, 5}

换句话说,在上面的表示中从右到左,设置了第2,第4和第6位。

答案 1 :(得分:1)

在java中你可以做到这一点! =)

    int value = 10; //0b1010
    String bits = Integer.toBinaryString(value); //1010
    BitSet bs = new BitSet(bits.length());

然后将结果添加到bitset =)

    for (int i = 0; i < bits.length(); i++) {
        if (bits.charAt(i) == '1') {
            bs.set(i);
        } else {
            bs.clear(i);
        }
    }
    System.out.println(bs); //{0, 2} so 0th index and 2nd index are set.