Si Entiendo correctamente, tienes 20 v alues que desea convertir, por lo que es un simple cambio de sombrero que escribió.
Para cambiar un solo byte de cadena de 8 Char: Convert.ToString(x, 2).PadLeft(8, '0')
Para cambiar arsenal completo:
byte[] a = new byte[] { 1, 10, 100, 255, 200, 20, 2 };
string[] b = a.Select(x => Convert.ToString(x, 2).PadLeft(8, '0')).ToArray();
// Returns array:
// 00000010
// 00010100
// 11001000
// 11111111
// 01100100
// 00001010
// 00000001
Para cambiar la matriz de bytes en una sola cadena, con bytes separados con el espacio:
byte[] a = new byte[] { 1, 10, 100, 255, 200, 20, 2 };
string s = string.Join(" ",
a.Select(x => Convert.ToString(x, 2).PadLeft(8, '0')));
// Returns: 00000001 00001010 01100100 11111111 11001000 00010100 00000010
si ordenamiento de bytes es incorrecta utilización IEnumerable.Reverse():
byte[] a = new byte[] { 1, 10, 100, 255, 200, 20, 2 };
string s = string.Join(" ",
a.Reverse().Select(x => Convert.ToString(x, 2).PadLeft(8, '0')));
// Returns: 00000010 00010100 11001000 11111111 01100100 00001010 00000001
similar, pero a la inversa: http://stackoverflow.com/questions/72176/using-c-what-is-the-most-efficient-method-of- converting-a-string-containing-bi –