Bonjour,
J'ai un affreux problème pour lequel l'ami Google n'a pas de solution...
Voilà, j'ai un tableau de "byte" dont le nombre de cases est toujours un multiple de 4. Je voudrais transformer ce tableau en tableau de "int" (d'où l'histoire du multiple de 4). En gros l'idée est de regrouper les octets 4 à 4 pour former des "int".
Voici un code, très naïf, qui fait à peu près ce que je veux :
Par contre question performance, c'est vraiment pas ça du tout. Je suis donc à la recherche d'une solution plus propre sans passer par du C natif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 byte a[]={1,2,3,4,5,6,7,8}; int b[]=new int[2]; for(int i=0;i<a.length;i+=4) b[i/4]=(a[i]<<24)+(a[i+1]<<16)+(a[i+2]<<8)+a[i+3];
Auriez-vous une idée ? Merci beaucoup d'avance !
PS : pour info j'aurais codé ça comme ça en C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char a[]={1,2,3,4,5,6,7,8}; int b[2]; memcpy(b,a,sizeof(a));
Partager