gpt4 book ai didi

java - 理解Java BitSet类的实现

转载 作者:行者123 更新时间:2023-11-29 04:58:18 25 4
gpt4 key购买 nike

当我尝试测试和理解 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 的这个或那个“末端”的索引(例如在 BitSet.get(int index) 中)而受到惩罚。

关于java - 理解Java BitSet类的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32924582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com