Conversion big-endian -> little endian
Le
Seb
Bonjour,
Je suis confronté à un problème de conversion big-endian -> little-endian de
données. J'ai lu beaucoup de choses à ce sujet, mais en dehors de conversion
au niveau des bits directement, je n'ai rien trouvé.
Existe-il une librairie (sous LINUX ou UNIX) qui sache faire ces
modifications "à la volée". Je dois envoyer des données sous forme de
structures (ça se complique du fait que les champs ne hétérogènes) d'une
machine little vers big (et inversement).
Si rien n'existe et que vous avez fait face à ce souci : comment avez vous
fait ?
Sébastien
Je suis confronté à un problème de conversion big-endian -> little-endian de
données. J'ai lu beaucoup de choses à ce sujet, mais en dehors de conversion
au niveau des bits directement, je n'ai rien trouvé.
Existe-il une librairie (sous LINUX ou UNIX) qui sache faire ces
modifications "à la volée". Je dois envoyer des données sous forme de
structures (ça se complique du fait que les champs ne hétérogènes) d'une
machine little vers big (et inversement).
Si rien n'existe et que vous avez fait face à ce souci : comment avez vous
fait ?
Sébastien

Poser une question


sous linux: htons, htonl, ntohs, ntohl
mais c'est du gnu... ou du bsd... enfin je crois
Merci, mais cela ne fonctionne qu'avec les valeurs entières : existe-t-il la
même chose pour les float ?
Sébastien
En fait à la réflexion, doit-on pour les valeurs flottantes faire une
conversion vers le format numérique entier correspondant à la taille du
float puis appeler la fonction ntoxx idoine ?
Seb
si c'est pour faire des choses plus compliquées que passer une IP et un
port par exemple (en gros, des u16 et u32) , il vaut mieux se tourner
vers un format de transfert de données portable (xdr ?). Rien ne
t'indique que le codage d'un float sur une machine est le même sur une
autre.
C'est malheureusement ce que je craignais.
Merci.
Sébastien