最简单的是将字节分解为8位?

时间:2014-06-03 09:24:48

标签: java

我有一个byte并希望得到一个8位的集合(在任何内置整数类型中表示为0或1 - booleanint,{{1} })。有没有内置的方法来做到这一点?

3 个答案:

答案 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