我有一个byte
并希望得到一个8位的集合(在任何内置整数类型中表示为0或1 - boolean
,int
,{{1} })。有没有内置的方法来做到这一点?
答案 0 :(得分:3)
您可能对BitSet及其方法BitSet.valueOf()和BitSet.get()感兴趣。
答案 1 :(得分:2)
一个功能怎么样?
public static int getBit(byte b, int bit)
{
int power = 1 << bit;
return (b & power) ? 1 : 0;
}
public static void main(String[] args)
{
for (int j = 0; j < 8; j++)
{
System.out.println(getBit(0x55, j));
}
}
答案 2 :(得分:0)
一种非常简单的方法是将字节转换为整数,然后使用内置函数转换为二进制。由于字节数据类型是8位带符号的二进制补码整数,因此您实际上可以像这样使用它:
byte b = (byte)53;
String binary = Integer.toString((int)b, 2); // convert to base 2