42

テキストボックスに1バイトを表示したい。今私は使用しています:

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

4 に答える 4

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

これにより、左側の空のスペースが「0」で埋められ、文字列に合計8文字が含まれます。

于 2011-01-28T14:37:57.030 に答える
12

どのように行うかは、出力をどのように表示するかによって異なります。

「00011011」だけが必要な場合は、次のような関数を使用します。

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

「 00011011 」のような出力が必要な場合は、次のような関数を使用します。

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

「00011011」のような出力が必要な場合は、次のような関数の方が適している可能性があります。

static string PadNibble(byte b)
{
    return Int32.Parse(Convert.ToString(b, 2)).ToString("0000 0000");
}
于 2011-01-28T14:39:21.833 に答える
1

文字列にゼロを埋め込みます。この場合はですPadLeft(length, characterToPadWith)。非常に便利な拡張メソッド。PadRight()もう1つの便利な方法です。

于 2011-01-28T14:39:06.717 に答える
0

拡張メソッドを作成できます。

public static class ByteExtension
{
    public static string ToBitsString(this byte value)
    {
        return Convert.ToString(value, 2).PadLeft(8, '0');
    }
}
于 2018-09-06T08:22:23.283 に答える