Convertir un uint/long en longueur bytes
salut !
j'viens demander un petit coup d'pouce a propos de convertion de bytes.
Je m'explique , par exemple je met ceci :
Code:
1 2
|
long test = 010203040506070809 |
et je voudrais l'obtenir en bytes car j'ai une fonction d'envoie qui gère uniquement en bytes , donc comme ceci :
Code:
0x01, 0x02, 0x03 (ect vous m'avez compris)
donc le passez en big endian ect. Mais c'est pas le problème , j'ai déjà mon code de convertion de uint en LE :
Code:
1 2 3 4 5 6 7 8 9 10
|
byte[] To4BytesLE(uint data)
{
byte[] b = new byte[4];
b[0] = (byte)data;
b[1] = (byte)(((uint)data >> 8) & 0xFF);
b[2] = (byte)(((uint)data >> 16) & 0xFF);
b[3] = (byte)(((uint)data >> 24) & 0xFF);
return b;
} |
Mais le problème c'est que mon long ou mon uint peut avoir une longueur aléatoire. Donc je me suis dit qu'il faudrait mettre une condition et c'est pour celà que je demande de l'aide , mettre une condition pour que ça calcul la longueur automatiquement et que ça retourne (un autre exemple) 010203 en 0x01 , 0x02 , 0x03.
ça a l'air confu mais ça m'aiderais beaucoup ,
Merci !