簡體   English   中英

JAVA BitSet設置

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM