如何将整数的二进制表达式输入到java中的bitSet中?
说a = 15
我想把1111
放到bitSet中,
有这个功能吗?
答案 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.