Je pense que tu te trompes sur quelque chose.
Un uint a une longueur de 4 bytes, que ta valeur soit 1 ou uint.MaxValue.
Un long a une longueur de 8 Bytes, idem ...
long test = 010203040506070809;
Ce n'est pas des Bytes[]. C'est un long, si tu veux 01-02-03-04-05-06-07-08-09 alors déjà ce n'est ni un long, ni un uint, ni aucun type connu. Tu as une longueur de 9 Bytes, et à ma connaissance aucun type (pour des chiffres) ne fait une longueur de 9 Bytes (byte[9]). Sauf un string de 9 caractères, mais ce n'est pas ce que tu veux.
Donc pour faire ma démonstration je retire 09.
new byte[8] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}
Ceci est un long (je ne sais pas le résultat mais c'est pas ce que l'on cherche)
Et donc pour ta conversion c'est ce tableau de bytes que doit passer à ta fonction pour travailler ta conversion.
Les codes n'ont pas la même valeur. Je te déconseille de les écrire en string, et de les parser etc.... Si tu travailles directement sur des bytes c'est que tu as des problématiques de performances. Donc évite les trucs qui vont t'en faire perdre. Si au finale se sont des messages, alors fait des trames avec des header et structure ta donnée, ce qu'il facilitera la conversion dans les deux sens.
Partager