Подтвердить что ты не робот

Byte to Binary String С# - отображать все 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 цифр.

4b9b3361

Ответ 1

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

Это заполнит пустое поле слева "0" для всего 8 символов в строке

Ответ 2

Как вы это делаете, зависит от того, как вы хотите, чтобы ваш результат выглядел.

Если вы просто хотите "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");
}

Ответ 3

Введите строку с нулями. В этом случае это PadLeft(length, characterToPadWith). Очень полезные методы расширения. PadRight() - еще один полезный метод.