テキストボックスに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桁すべてを表示したい。
Convert.ToString(MyVeryOwnByte, 2).PadLeft(8, '0');
これにより、左側の空のスペースが「0」で埋められ、文字列内の合計8文字になります。
どのように行うかは、出力をどのように見せたいかによって異なります。
「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");
}
文字列にゼロを埋め込みます。この場合、PadLeft(length, characterToPadWith)
です。非常に便利な拡張メソッド。 PadRight()
は別の便利な方法です。
拡張メソッドを作成できます:
public static class ByteExtension
{
public static string ToBitsString(this byte value)
{
return Convert.ToString(value, 2).PadLeft(8, '0');
}
}