Чтобы преобразовать значение с фиксированной запятой в нечто читаемое человеком, выполните деление с плавающей запятой на 2 на количество дробных битов.Например, если имеется 15 дробных битов, 2 ^ 15 = 32768, поэтому вы должны использовать что-то вроде этого:
int x = <fixed-point-value-in-1.15-format>
printf("x = %g\n", x / 32768.0);
Теперь преобразование чисел с фиксированной запятой в число с плавающей запятой и вызов printf()
стоят дорогооперации, и они обычно разрушают любую производительность, полученную с помощью фиксированной точки.Я предполагаю, что вы делаете это только для диагностических целей.
Кроме того, обратите внимание, что если ваша платформа выполняет операции с фиксированной запятой, потому что операции с плавающей запятой запрещены или недоступны, вам придется делать что-то другое,вдоль линий вручную делать десятичное преобразование.Смоделируйте целое число как базовое значение с плавающей точкой, умноженное на 32768, и перейдите оттуда.Здесь есть некоторый полезный код с фиксированной точкой .
ps. Я не уверен, что вы все еще заинтересованы в этом ответе, аширк, (я написал его больше для других), но если выдобро пожаловать в стек переполнения!