Si Je comprends bien, vous avez 20 v alues que vous voulez convertir, donc c'est juste un simple changement de chapeau que vous avez écrit.
Pour changer un seul octet à la chaîne 8 char: Convert.ToString(x, 2).PadLeft(8, '0')
Pour changer gamme complète:
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
Pour modifier votre tableau d'octets à chaîne unique, avec des octets séparés avec l'espace:
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 la commande d'octets est incorrecte, utiliser 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
similaire, mais en sens inverse: http://stackoverflow.com/questions/72176/using-c-what-is-the-most-efficient-method-of- convertissant-une-chaîne-contenant-bi –