GNT sans publicité, site mobile, fonctionnalitées exclusives...

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
Lire les 40 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 8
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Al 1
Le #479469
Seb a écrit:
Bonjour,

Je suis confronté à un problème de conversion big-endian -> littl e-endian de
données. J'ai lu beaucoup de choses à ce sujet, mais en dehors de c onversion
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 form e de
structures (ça se complique du fait que les champs ne hétérogèn es) d'une
machine little vers big (et inversement).


sous linux: htons, htonl, ntohs, ntohl

mais c'est du gnu... ou du bsd... enfin je crois

Seb
Le #479468
Al 1 wrote:
Seb a écrit:
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).


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


Seb
Le #479275
Al 1 wrote:
Seb a écrit:
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).


sous linux: htons, htonl, ntohs, ntohl

mais c'est du gnu... ou du bsd... enfin je crois


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


Al 1
Le #479274
Seb a écrit:

En fait à la réflexion, doit-on pour les valeurs flottantes faire u ne
conversion vers le format numérique entier correspondant à la taill e 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.

Seb
Le #479272
Al 1 wrote:
Seb a écrit:

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


Publicité
Suivre les réponses
Poster une réponse
Anonyme