簡體   English   中英

了解Java BitSet類的實現

[英]Understanding the implementation of Java BitSet class

當我嘗試測試並理解它時,BitSet對象提供的結果有些不清楚。

主要:

byte f = (byte)0b00101000;
byte s = (byte)0b11111111;
byte[] bytes = new byte[]{f, s};
BitSet bs = BitSet.valueOf(bytes);

printlnLog("Input bitset: " + bs);
printlnLog("Input bitset length: " + bs.size());

輸出:

Input bitset: {3, 5, 8, 9, 10, 11, 12, 13, 14, 15}
Input bitset length: 64

輸出對我來說毫無意義。 我不了解BitSet的基本邏輯。 感謝您的幫助!

這足夠清楚嗎?

byte f = (byte)0b00101000;
// Bits 0 to 7   --5-3---                  
byte s = (byte)0b11111111;
// Bits 8 to 15  54321098
byte[] bytes = new byte[]{f, s};
BitSet bs = BitSet.valueOf(bytes);

而64位則歸因於當前分配的位數。 設置位的最大位數可以通過調用bs.length()

沒有任何跡象表明任何構造函數或方法定義的尾隨未設置位,但這不是必需的。 這不會造成任何傷害,因為您不會受到使用值(例如,在BitSet.get(int index)中)超出BitSet的“結束”值的懲罰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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