gpt4 book ai didi

java - BitSet 与整数/长整数

转载 作者:IT老高 更新时间:2023-10-28 20:29:52 25 4
gpt4 key购买 nike

如果我想对一个整数执行位操作,如何将它加载到 java.util.BitSet 中?如何将其转换回 int 或 long?我不太关心 BitSet 的大小——它总是 32 或 64 位长。我只想使用 set()clear()nextSetBit()nextClearBit() 方法而不是按位运算符,但我找不到一种简单的方法来初始化具有数字类型的位集。

最佳答案

以下代码从 long 值创建位集,反之亦然:

public class Bits {

public static BitSet convert(long value) {
BitSet bits = new BitSet();
int index = 0;
while (value != 0L) {
if (value % 2L != 0) {
bits.set(index);
}
++index;
value = value >>> 1;
}
return bits;
}

public static long convert(BitSet bits) {
long value = 0L;
for (int i = 0; i < bits.length(); ++i) {
value += bits.get(i) ? (1L << i) : 0L;
}
return value;
}
}

已编辑:现在两个方向,@leftbrain:当然,你是对的

关于java - BitSet 与整数/长整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2473597/

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