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

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

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

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

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

ПРАВКА: Существует некоторая путаница в отношении того, как будет использоваться char*. Char* будет аргументом для функции fwrite, которая записывает в канал.

25
задан arsaKasra 17 April 2013 в 23:05
поделиться