J'ai besoin d'encoder et de décoder IEEE 754 flottant et double de binaire dans Node.js pour analyser un protocole réseau. P>
Y a-t-il des bibliothèques existantes qui font cela ou dois-je lire la spécification et la mettre en œuvre moi-même? Ou devrais-je écrire un module C pour le faire? P>
3 Réponses :
Notez que comme du noeud 0.6 Cette fonctionnalité est incluse dans la bibliothèque principale, c'est donc la nouvelle meilleure façon de le faire. P>
voir http://nodejs.org/docs/latest/api/buffer.html pour plus de détails. P>
Si vous lisez / écriture des structures de données binaires, vous pouvez envisager d'utiliser une enveloppe conviviale autour de cette fonctionnalité pour faciliter la lecture et la maintenance des choses. Fiche suit: https://github.com/dobesv/node-binstruct P>
J'ai porté un convertisseur C ++ (fabriqué avec GNU GMP) avec un support float128 à EMSCRIPTEN de sorte qu'il fonctionnerait dans le navigateur: https://github.com/ysangkok/eeeee-754 p>
EMSCRIPTEN produit JavaScript qui fonctionnera sur Node.js aussi. Vous obtiendrez la représentation flottante comme une chaîne de bits, cependant, je ne sais pas si c'est ce que vous voulez. P>
Dans JavaScript moderne (ECMAScript 2015), vous pouvez utiliser ps: cela fonctionne dans Nodejs mais également en chrome, Firefox et Edge. P> P> arraybuffer code> et
float32array code> /
float64array code>. J'ai résolu ceci comme ceci:
Peut-être que vous pouvez voir si cette chose fait ce que vous voulez: JSFROMHell.com/classes/binary-Parser
Voir aussi: JavaScript - lire / écrire des octets de flotteur dans JS - Overflow de pile (toutes les réponses y travailleraient ici aussi)