Byte to Binary String C# - Display all 8 digits

50,301

Solution 1

Convert.ToString(MyVeryOwnByte, 2).PadLeft(8, '0');

This will fill the empty space to the left with '0' for a total of 8 characters in the string

Solution 2

How you do it depends on how you want your output to look.

If you just want "00011011", use a function like this:

static string Pad(byte b)
{
    return Convert.ToString(b, 2).PadLeft(8, '0');
}

If you want output like "00011011", use a function like this:

static string PadBold(byte b)
{
    string bin = Convert.ToString(b, 2);
    return new string('0', 8 - bin.Length) + "<b>" + bin + "</b>";
}

If you want output like "0001 1011", a function like this might be better:

static string PadNibble(byte b)
{
    return Int32.Parse(Convert.ToString(b, 2)).ToString("0000 0000");
}

Solution 3

Pad the string with zeros. In this case it is PadLeft(length, characterToPadWith). Very useful extension methods. PadRight() is another useful method.

Share:
50,301
Hooch
Author by

Hooch

Updated on July 09, 2022

Comments

  • Hooch
    Hooch almost 2 years

    I want to display one byte in textbox. Now I'm using:

    Convert.ToString(MyVeryOwnByte, 2);
    

    But when byte is has 0's at begining those 0's are being cut. Example:

    MyVeryOwnByte = 00001110 // Texbox shows -> 1110
    MyVeryOwnByte = 01010101 // Texbox shows -> 1010101
    MyVeryOwnByte = 00000000 // Texbox shows -> <Empty>
    MyVeryOwnByte = 00000001 // Texbox shows -> 1
    

    I want to display all 8 digits.

  • Gabe
    Gabe over 13 years
    @Jeff: I posted this version because sometimes the new string() technique is useful. You didn't question Gregory's mention of PadRight, and that function doesn't even solve the problem.
  • Jeff Yates
    Jeff Yates over 13 years
    How I reacted to someone else's response is entirely irrelevant. I just thought it strange to see you downplay your answer by referring to a better solution that you didn't give and that the suggestion you had was not particular easy to read. As SO is a resource for getting a good answer, you'd be better including the PadLeft solution entirely AND your alternative - you might well be the better answer then. This isn't about first, it's about best.
  • Jeff Yates
    Jeff Yates over 13 years
    PadRight is a useful method but not in this scenario. I recommend you remove that from your answer (or add every other useful .NET method - I know which I'd pick :D).
  • Gabe
    Gabe over 13 years
    Also, they're not extension methods.
  • Gabe
    Gabe over 13 years
    @Jeff: I prefer a separate post for each answer so that one can easily browse answers without having to wade through duplicates. However, I have made an exception today, and just for you have put 3 answers into a single post.
  • THBBFT
    THBBFT over 9 years
    The third answer was almost approximately what I was looking for. The pattern I needed was 00 00 00 00 ... i think i figured it out :)