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

2 réponses

cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
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
42
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