Если я правильно понимаю, у вас есть 20 значений, которые вы хотите преобразовать, так что это просто простая смена шапки, которую вы написали.
Чтобы изменить однобайтовую строку на 8 символов: Convert.ToString( x, 2 ).PadLeft( 8, '0' )
Чтобы изменить полный массив:
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
Чтобы изменить ваш байтовый массив на одну строку с байтами, разделенными пробелом:
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
если порядок байтов неправильный, используйте 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