Conversion little endian vers big endian

Signaler
Messages postés
13
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
7 avril 2006
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
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

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
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#
*/
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
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 )
);
}