我的数字为10101,1000,11101,....等等。我想使用bitset类存储这些数字,但不知道该怎么做?请帮忙
答案 0 :(得分:1)
您应该使用字节数组。
答案 1 :(得分:1)
标准Java SE API中有BitSet实现,您应该尝试使用该实现。
答案 2 :(得分:1)
如果您想使用二进制数表示来创建BitSet
,可以分两步完成:
使用带有字符串和基数作为参数的BigInteger构造函数。对于二进制,基数是2。
通过BigInteger.toByteArray()调用BitSet.valueOf(),从BitSet
的字节数组表示初始化BigInteger
。
e.g。
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 binary literals并使用{{3}初始化BigInteger
而不是方法。