Преобразование double в char * в C ++ с высокой производительностью

оему приложению необходимо преобразовать двойные значения в char * для записи в канал, который принимает только символы. Обычные способы сделать это с помощьюsprintf () функция или использование Ostringstream из заголовочного файла iomanip.h.

Оказывается, у обоих очень плохая производительность. И моему приложению нужно делать это преобразование так часто, что оно становится основным узким местом.

Есть ли другая функция, которую я мог бы использовать? Какую логику я могу использовать, чтобы написать эффективную функцию преобразования? Единственное, что мне удалось до сих пор придумать, - это вывести каждую отдельную цифру, используя операции деления и мода, и добавить эти цифры к символу *, чтобы получить все двойное значение. Это не похоже на хороший подход, и, скорее всего, будет иметь плохую производительность.

Заранее спасибо за ваши мысли.

EDIT: есть некоторая путаница по поводу того, как будет использоваться char *. Char * будет аргументом функции fwrite, которая пишет в канал.

Ответы на вопрос(8)

Ваш ответ на вопрос