Писал как-то калькулятор для ардуино, обнаружил что число с плавающей точкой любой точности (и float, и double) занимает 32 бита. В итоге пришлось написать свой тип данных нужной мне точности. Может, пора написать об этом статью на хабр?
Великие и ужасные грабли алиасинга C/C++ и type punning, см. раз, два и т.п.
Если ещё не нарвались — повезло. Или там свои компиляторы, которые такое не чудят?
В целом очень интересно. В «большом» мире библиотеки конверсии тоже применяют в чём-то сходные подходы, чтобы не заниматься ерундой типа «делим на 10 в цикле», но им не нужно так вжиматься в минимум ресурсов.
К вопросу о преобразованиях и прочих операциях