字节到二进制字符串C# - 显示全部8位数字

时间:2011-01-28 14:35:28

标签: c# .net string byte bits

我想在文本框中显示一个字节。 现在我正在使用:

Convert.ToString(MyVeryOwnByte, 2);

但是当字节在0开始时,那些0正在被诅咒。 例如:

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

我想显示所有8位数字。

4 个答案:

答案 0 :(得分:67)

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

这将填充左侧的空白区域,其中“0”表示字符串

中共有8个字符

答案 1 :(得分:11)

如何操作取决于您希望输出的外观。

如果您只想要“00011011”,请使用以下功能:

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

如果您想要输出“000 11011 ”,请使用以下功能:

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

如果您想要输出“0001 1011”,这样的功能可能会更好:

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

答案 2 :(得分:1)

用零填充字符串。在这种情况下,它是PadLeft(length, characterToPadWith)。非常有用的扩展方法。 PadRight()是另一种有用的方法。

答案 3 :(得分:0)

您可以创建扩展方法:

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