Bonjour,
existe t il des bibiliothèques C ou C++ pour encoder et decoder des flux binaire en "little endian"
Merci par avance,
Bonjour,
existe t il des bibiliothèques C ou C++ pour encoder et decoder des flux binaire en "little endian"
Merci par avance,
si ton but est de passé de little endian en big endian un flux binaire (ou vice versa), tu peux le faire toi meme en 5min si tu as quelques connaissances en programmation. Ce n'est rien d'autre que des inversions d'octets 2 par 2 :
http://fr.wikipedia.org/wiki/Little_endian
Codeusement,
Oniric.
han ! tu as édité mon message en le quotant, j'ai jamais ecris ca .... d'ailleurs j'ai jamais posté ici ce matin !
(merci pour la correction, fatigué le matin... j'ai bien sur edité mon message pour ne pas laisser cette vilaine erreur de ma part)
Discretement,
Oniric.
la prochaine fois je tournerai ma langue 7 fois ... longtemps que j'avais pas regardé ca, et en effet je me suis bien melangé les pinceaux ... j'ai relu le lien que j'ai donné et ce n'est en effet pas par octet
Merci de la correction pour maarek et moi
en fait, c'est "flux binaire". Si il s'agit de flux logiques (système), c'est comme du réseau, L'unité de données est l'octet quelle que soit l'implémentation et la taille du byte.
Si il s'agit de flux matériels (ports série synchrone 16-bit dans un DSP, par exemple), c'est autre chose.
C'est pour ça que j'ai demandé des détails sur la plateforme et l'application.
Tant que le P.O. n'a pas répondu, nons ne faisons que spéculer...
Bonsoir à tous,
Désolé de ne pas avoir pu répondre plus tôt mais j'étais en déplacement.
Alors voilà exactement mon sujet.
J'ai à faire passer et à recevoir des données sur un réseau TCP IP.
Ces données correspondent à des objets complexes qui peuvent toujours se ramener à des "data type" de base comme du signed integer (SInt8, Sint16, ...)
ou du décimal 32 ou 64, mais également de l'ascii.
L'unité d'encodage minimum est le Byte.
Donc lorsque j'envoie l'information je dois encoder en binaire selon le principe little endian et lorsque je reçois je dois décoder pour revenir aux types primitifs.
Je dois admettre que ma connaissance des API qui permettent l'encodage en binaire des types primitifs est assez réduit donc je suis ouvert à toute suggestion ou aide.
Merci par avance.
Tu utilises simplement les fonctions de socket :
Host -> Network 16-bit : htons()
Host -> Network 32-bit : htonl()
Network -> Host 16-bit : ntohs()
Network -> Host 32-bit : ntohl()
Pour le 64 bit, il y a peut être ?to?ll() dans les versions récentes des sockets...
http://publib.boulder.ibm.com/infoce...rf2/htonll.htm
par exemple ...
Je vais creuser cette solution et voir si tous mes cas sont traités.
Merci,
Partager