Ответ 1
Convert.ToString(MyVeryOwnByte, 2).PadLeft(8, '0');
Это заполнит пустое поле слева "0" для всего 8 символов в строке
Я хочу отобразить один байт в текстовом поле. Теперь я использую:
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()
- еще один полезный метод.