将字节或整型转换为位集
2022-09-04 02:13:35
我有以下几点:
int num=Integer.parseInt(lineArray[0]);
byte numBit= num & 0xFF;
有没有非常简单的方法可以转换为位数组?或者更好的是,有没有办法绕过int的字节转换,从位数组直接进入?numBit
num
谢谢
我有以下几点:
int num=Integer.parseInt(lineArray[0]);
byte numBit= num & 0xFF;
有没有非常简单的方法可以转换为位数组?或者更好的是,有没有办法绕过int的字节转换,从位数组直接进入?numBit
num
谢谢
如果你想要一个 BitSet,试试:
final byte b = ...;
final BitSet set = BitSet.valueOf(new byte[] { b });
如果你想要一个 ,boolean[]
static boolean[] bits(byte b) {
int n = 8;
final boolean[] set = new boolean[n];
while (--n >= 0) {
set[n] = (b & 0x80) != 0;
b <<= 1;
}
return set;
}
或者,等效地,
static boolean[] bits(final byte b) {
return new boolean[] {
(b & 1) != 0,
(b & 2) != 0,
(b & 4) != 0,
(b & 8) != 0,
(b & 0x10) != 0,
(b & 0x20) != 0,
(b & 0x40) != 0,
(b & 0x80) != 0
};
}
Java 7 有 BitSet.valueOf(long[]) 和 BitSet.toLongArray()
int n = 12345;
BitSet bs = BitSet.valueOf(new long[]{n});