Как я могу преобразовать байт в строку двоичных цифр в С#?

Я пытаюсь преобразовать байт в строку двоичных цифр - не закодированную, как есть, т.е. если байт = 00110101, то строка будет "00110101".

Я искал сверху и снизу, и все, что я нашел, связано либо с получением ASCII или UTF, либо с любым другим значением байта, либо с преобразованием символа в байт, ни то, ни другое мне не нужно. Простое выполнение ToString() дает мне значение int.

Может быть, я упускаю что-то очевидное, и я понимаю, что это довольно редкий случай. Это должно быть возможно без какого-то сумасшедшего цикла, который повторяется, не так ли?

(Я отправляю строку через bluetoothLE во вращающуюся витрину магазина, чтобы запрограммировать ее)

редактировать: вот код:

DateTime updateTime = DateTime.Now;
byte dow = (byte)updateTime.DayOfWeek;
Debug.WriteLine(dow.ToString());

Если я сломаю и проверю «доу», он покажет «3» (это среда), а не 00000011, как я ожидал. Я только что попробовал BitConverter, как предложено ниже, но все равно возвращает «3».


person Ryan    schedule 26.02.2014    source источник
comment
Разместите свой код. Байт какого типа?   -  person Sriram Sakthivel    schedule 26.02.2014
comment
Попробуйте использовать BitConverter msdn.microsoft. com/ru-ru/library/   -  person ilansch    schedule 26.02.2014
comment
возможный дубликат stackoverflow.com/questions/3702216/ stackoverflow.com/questions/3581674/   -  person wiero    schedule 26.02.2014


Ответы (1)


Вы хотите использовать Convert.ToString(), но указать основание, в данном случае, потому что оно двоичное, основание 2.

Однако вам также нужно будет дополнить число битов, потому что это отрезает 0 цифр, поэтому 00000001 в конечном итоге будет 1.

Попробуй это:

Convert.ToString(theByte,2).PadLeft(8,'0');
person Lloyd    schedule 26.02.2014