我有 10101、1000、11101、.... 等数字。我想使用 bitset 类存储这些数字,但不知道该怎么做?请帮忙
问问题
1420 次
3 回答
1
标准 Java SE API 中有一个BitSet实现,您应该尝试使用它。
于 2012-06-14T08:48:16.603 回答
1
您应该改用字节数组。
于 2012-06-14T08:33:50.477 回答
1
如果要使用二进制数表示来创建BitSet
,可以分两步完成:
使用将字符串和基数作为参数的BigInteger构造函数。对于二进制,基数为 2。
通过使用BitSet.valueOf()调用BigInteger.toByteArray()
BitSet
从 的字节数组表示中初始化 a 。BigInteger
例如
BigInteger a = new BigInteger("10101", 2); //base 2 for binary
BitSet aBits = BitSet.valueOf(a.toByteArray());
BitSet.valueOf()
是 Java 7 中的新功能,因此不适用于早期的 Java 版本。
编辑:
如果您不喜欢BigInteger
使用字符串进行初始化并且您的二进制数适合 64 位,您也可以使用 Java 7 的二进制文字BigInteger
并使用BigInteger.valueOf(long)方法进行初始化。
于 2012-06-14T09:00:22.457 回答