簡體   English   中英

BitSet valueOf是什么?

[英]BitSet valueOf does what?

我很難理解BitSet.valueOf(bytearray)

我有以下代碼:

byte[] a = new byte[]{(byte) 0x2D, (byte) 0x04};
//binary => 0010 1101 0000 0100
BitSet bs = BitSet.valueOf(a);
System.out.println(bs);

上面的代碼為我提供了{0, 2, 3, 5, 10} 為什么?

我以為應該返回正確的索引,或者保持1,然后向后返回{2, 8, 10, 11, 13}

如您所料, BitSet做正確的事。 您似乎在誤解哪個位為零,哪個位為7。 對於第一個字節,您的二進制表示形式是正確的,但是請記住,第一位在右邊(從低到高,這是我們如何寫數字的怪異產物):

Bit Value:  0 0 1 0 1 1 0 1
Index:      7 6 5 4 3 2 1 0

讀取索引得出0, 2, 3, 5, 10

它是從LSB到MSB的第一個字節,然后是從LSB到MSB的第二個字節:

1011 0100 0010 0000
| ||  |     |
0 23  5     10

暫無
暫無

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

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