Byte to Binary String C# - Display all 8 digits

≡放荡痞女 提交于 2019-12-17 16:26:53

问题


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 cuted. 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.


回答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




回答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");
}



回答3:


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




回答4:


You can create an extension method:

public static class ByteExtension
{
    public static string ToBitsString(this byte value)
    {
        return Convert.ToString(value, 2).PadLeft(8, '0');
    }
}


来源:https://stackoverflow.com/questions/4829366/byte-to-binary-string-c-sharp-display-all-8-digits

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!