как мне преобразовать на си число(дробное. целое) в внутренний формат(спт/сфт)
Что такое спт/сфт? С Плавающей Точкой -> С Фиксированной Точкой?
Просто умножить на 2^(количество битов в дробной части представления с фиксированной точкой) и взять целую часть от результата. Например, для представления с фиксированной точкой 16.16:
float x = 76.625;
uint32_t fix = (int32_t)(x * (1 << 16));
Вывести его проще всего приведя к типу float и поделив на 2 ^ (количество битов в дробной части представления с фиксированной точкой):
printf("%f\n", (float)fix / (1 << 16));