Getting byte bits as strings

I want bits (0 or one) from a byte in a string, but I don't know how to do this? Thanks.

+3
source share
5 answers

I'm sure there is a smarter way here, but it works:

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;
}
-2
source

Take a look at Convert.ToString () . You can use it in both directions to convert byte-> bit-string and vice versa.

byte value = 56;
// There ...
string bits = Convert.ToString(value, 2);
// ...and Back Again
value = Convert.ToByte(bits, 2);
+23
source

clweek , :
StringBuilder char.

: byteToBitsString(157) "00101111"

private string byteToBitsString(byte byteIn)
    {
        var bitsString = new StringBuilder(8);

        bitsString.Append(Convert.ToString((byteIn / 128) % 2));
        bitsString.Append(Convert.ToString((byteIn / 64) % 2));
        bitsString.Append(Convert.ToString((byteIn / 32) % 2));
        bitsString.Append(Convert.ToString((byteIn / 16) % 2));
        bitsString.Append(Convert.ToString((byteIn / 8) % 2));
        bitsString.Append(Convert.ToString((byteIn / 4) % 2));
        bitsString.Append(Convert.ToString((byteIn / 2) % 2));
        bitsString.Append(Convert.ToString((byteIn / 1) % 2));

        return bitsString.ToString();
    }
+2

, :

public static string ByteToBinaryString(byte byteIn)
{
    StringBuilder out_string = new StringBuilder();
    byte mask = 128;
    for (int i = 7; i >=0 ; --i)
    {
        out_string.Append((byteIn & mask) != 0 ? "1" : "0");
        mask >>= 1;
    }
    return out_string.ToString();
}
0

deluxe -, :

    public static string ToByteFormat(int valIn, int digits)
    {
        var bitsString = new StringBuilder(digits);
        int mask = (1 << digits - 1);
        for(int i = 0; i < digits; i++)
        {
            bitsString.Append((valIn & mask) != 0 ? "1" : "0");
            mask >>= 1;
        }
        return bitsString.ToString();
    }
0

Source: https://habr.com/ru/post/1718639/


All Articles