将BitSet设置为基本类型?

Tre*_*ski 1 java object primitive-types bitset

在Java中,您可以创建一个大小为8的BitSet并将其存储为一个字节以便输出吗?BitSets上的文档没有提到它.这是不是意味着什么?

Whi*_*g34 5

你可以不投BitSetbyte.

您可以编写代码来执行您想要的操作.鉴于一个BitSet名字bits,你去:

byte output = 0;
for (int i = 0; i < 8; i++) {
    if (bits.get(i)) {
        output |= 1 << (7 - i);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:上面的代码假定您的位从左到右编入索引0到7.例如,假设01101001你认为位0 的位是最左边的0.如果你从右到左分配位,那么位0将是最右边的1.在这种情况下你需要output |= 1 << i.

  • @Trevor显然是一个被断头台袭击的不快乐家伙.:-) Nah,`| =`表示"或等于",或`output = output | 1 <<(7 - i)`.现在`1 <<(7 - 1)`部分意味着取1并将其移位.所以你基本上是说"将'输出'的第i位设置为1". (2认同)