[英]JAVA BitSet setting
我正在用Java(JDK 1.8)开发并操纵BitSet。 我遇到一个奇怪的问题。
我正在实例化大小为160的BitSet:
BitSet example = new BitSet(160);
我想使用size()方法检查大小,该方法给出了位集中的位数。 在文档中,据说以int N作为参数的构造函数正在创建N位的位集。
但是,当我做后立即检查大小
example.size()
我获得了价值
192
我不明白为什么,有人遇到过这种问题吗? 链接到文档: http : //docs.oracle.com/javase/7/docs/api/java/util/BitSet.html
这是因为BitSet
构造函数在参数给定的范围内创建了一个BitSet
“其初始大小足以显式表示”位。 因此,实际size
将至少你在参数给出数字,但不一定等于该数字。
它特别使用192的原因是192是一个相当不错的二进制数:64 * 3。
因为BitSet实际上用于long []来存储0/1。
private void initWords(int nbits) {
words = new long[wordIndex(nbits-1) + 1];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.