将字节转换为二进制

Eyl*_*yla 2 c# flv

我有FLV文件我将它存储到字节数组,我可以逐字节读取它.我想将每个字节转换为二进制0和1

我想将变量b转换为二进制1s 0s.例如,如果b = 70,如何将其转换为二进制

我可以用什么函数在C#中做到这一点?

这是我的代码读取FLV文件并存储它的字节数组.

byte[] myArray = System.IO.File.ReadAllBytes(@"myFlvFile.flv");

int r = 0;
foreach (var b in myArray)
{
  r += 1;
  txtBit.Text = Environment.NewLine + Convert.ToString(b);

  if (r == 50)
    return;
}
Run Code Online (Sandbox Code Playgroud)

Las*_*olt 11

如果你想要一个位串:

byte b = 100;

//Will be "1100100"
var bitstring = Convert.ToString(b, 2);
Run Code Online (Sandbox Code Playgroud)

所以在你的例子中,只需添加 , 2

第二个参数是您要使用的基础.

  • 2 =二进制(0 - 1)
  • 8 =八进制(0 - 7)
  • 16 =十六进制(0 - F)

和辅助,我对你的代码有一点改进:)这将做:

byte[] myArray = System.IO.File.ReadAllBytes(@"myFlvFile.flv");

for (r = 0; r < 50; r++)
{
    txtBit.Text = Environment.NewLine + Convert.ToString(myArray[r], 2);
    //Or if you want to append instead of replace? (I think you do, but that is not what your code do)
    txtBit.Text += Environment.NewLine + Convert.ToString(myArray[r], 2);
}
Run Code Online (Sandbox Code Playgroud)

还有待改进的东西 - 你可能想看StringBuilder或类似:-)(以你的方式连接文本是非常低效的.)