Conversion little endian vers big endian

docteur_re Messages postés 13 Date d'inscription vendredi 17 décembre 2004 Statut Membre Dernière intervention 7 avril 2006 - 29 mars 2006 à 19:02
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 30 mars 2006 à 05:33
bonjour à tous,

voilà mon problème : j'ai un serveur qui tourne sous windows et qui envoit en gros des Int32 vers mes clients.
Les clients tournent sur PocketPC, ils ont donc des processeurs ARM (il me semble) qui tourne en big endian.

Donc lorsque je reçois ces Int32 sous forme de byte[] provenant du serveur, les 4 octets de chaque Int32 sont dans le mauvais ordre.
donc : System.BitConverter.ToInt32(receiveBytes, 0); ça ne marche pas (genre je reçois 54564688 au lieu de recevoir 53).

Je me demandais s'il existait dans le framework une fonction qui faisait cette conversion toute seule pour eviter de se faire c.... à faire ça à la main.

j'ai cherché du coté des System.Text.Encoding mais j'ai pas réussi à trouver quelque chose qui marche.

merci ;)
bye
A voir également:

2 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
29 mars 2006 à 22:35
Salut,

A ma connaissance il n'y a rien qui soit intégré.
Je crois qu'il ne te reste plus qu'a coder ta méthode utilitaire (qui fera un bon snippet pour la souris je pense ;-) )

/*
coq
MVP Visual C#
*/
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
30 mars 2006 à 05:33
Si je me suis pas planté..

private int Invert( int i )
{
return
(
( byte )i << 24 |
( byte )( i >> 8 ) << 16 |
( byte )( i >> 16 ) << 8 |
( byte )( i >> 24 )
);
}
0
Rejoignez-nous