将字节位作为字符串

Had*_*dad 4 .net c# string

我想从字符串中的一个字节的位(0或一个),但我不知道如何?谢谢.

Vol*_*erK 26

看看Convert.ToString().您可以两种方式使用它,转换字节 - >位串,反之亦然.

byte value = 56;
// There ...
string bits = Convert.ToString(value, 2);
// ...and Back Again
value = Convert.ToByte(bits, 2);
Run Code Online (Sandbox Code Playgroud)

  • 这个答案应该是公认的答案.当只给出一个参数时,Convert.ToString(byte)返回一个十六进制字符串,但是当给出第二个参数时,Convert.ToString(byte,int)可以使用base 2,8,10或16.```Convert. ToString(56,2)```返回````111000"```但是如果你想要*all*这些位,那么```Convert.ToString(56,2).PadLeft(8,'0') ```返回````00111000"``` (2认同)

clw*_*eks -2

我敢打赌有一种更聪明的方法可以做到这一点,但它有效:

private string byteToBitsString(byte byteIn)
{
    char[] bits = new char[8];
    bits[0] = Convert.ToString((byteIn / 128) % 2);
    bits[1] = Convert.ToString((byteIn / 64) % 2);
    bits[2] = Convert.ToString((byteIn / 32) % 2);
    bits[3] = Convert.ToString((byteIn / 16) % 2);
    bits[4] = Convert.ToString((byteIn / 8) % 2);
    bits[5] = Convert.ToString((byteIn / 4) % 2);
    bits[6] = Convert.ToString((byteIn / 2) % 2);
    bits[7] = Convert.ToString((byteIn / 1) % 2);
    return bits;
}
Run Code Online (Sandbox Code Playgroud)

  • 请参阅使用 Convert.ToString(value,2).PadLeft(8,'0') 代替的其他答案。 (3认同)