La conversion de double, char* en C++ avec la haute performance

Mon application a besoin de convertir des valeurs double char* écrire à un tuyau qui n'accepte que des caractères. Les façons habituelles de faire cela est l'aide de l' sprintf() la fonction ou à l'aide de ostringstream de iomanip.h fichier d'en-tête.

S'avère, ces deux ont vraiment de la mauvaise performance. Et mon application doit faire cette conversion si souvent qu'il devient le principal goulot d'étranglement.

Est-il une autre fonction que je pourrais utiliser? Ce que la logique puis-je utiliser pour écrire une conversion efficace de la fonction? La seule chose que j'ai réussi à venir jusqu'ici est d'obtenir chaque individu chiffres à l'aide de la division et de la mod des opérations, et ajouter ces chiffres à un char* pour obtenir la totalité de la valeur de type double. Cela ne semble pas être une bonne approche si, et aura probablement une mauvaise performance elle-même.

Merci d'avance pour vos pensées.

EDIT: Il y a une certaine confusion sur la façon dont le char* sera utilisé. Le char* sera un argument de la fonction fwrite qui écrit à un tuyau.

  • Qu'entendez-vous par "pipe n'accepte que les caractères"? Pouvez-vous envoyer/écrire des octets? Le format dans lequel les données de cette pipe question (est-il besoin d'être lisible par l'homme), ou voulez-vous convertir le dos de l'autre côté?
  • Lire ceci: stackoverflow.com/questions/3173056/...
  • pourquoi ne pas bitcast à un int et encoder qui en hexadécimal, et l'envoyer (puis de l'autre côté de convertir retour)