byte转bit

时间:2023-02-03 21:15:39

由于项目需要,传过来的数据是高位到低位的Byte,需要输出低位到高位的bool数组。

 public static bool[] getBits(byte[] byt)
{
bool[] ret = new bool[byt.Length * 8];
for (int j = byt.Length - 1; j >= 0; j--)
{
for (int i = 0; i < 8; i++)
{
ret[(byt.Length -j) * 8 - i-1] = (byt[j] & (128 >> i)) != 0;
}
} return ret;
}

如果是单一Byte转bit数组,那么可以用这个简易的:

  private bool[] byteToBits(byte val)
{
bool[] ret = new bool[8];
for (int i = 0; i < 8; i++)
{
ret[i] = (val & (1 << i)) != 0;
}
return ret;
}