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