[英]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.