Для числового выражения любого типа:
+###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;-###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;0
Используйте три части для трех случаев: положительные, отрицательные, ноль
Другие аспекты примера:
Помимо проблем с порядком байтов, у вас нет возможности узнать, где будет каждое битовое поле.
Согласно 6.7.2 Спецификаторам типов , параграф 11 стандарта C :
Реализация может выделить любую адресуемую единицу хранения, достаточно большую для хранения битовое поле. Если остается достаточно места, битовое поле, которое следует сразу за другим битовым полем в структуре, должно быть упаковано в смежные биты той же единицы. Если остается недостаточно места, определяется, является ли битовое поле, которое не умещается, в следующем блоке или перекрывает смежные блоки, определяется реализацией. Порядок распределения битовых полей в блоке (от старшего к младшему или от младшего к старшему) определяется реализацией. Выравнивание адресуемой единицы хранения не определено .
blockquote>Если вам нужно точно знать, где находится бит в ваших данных, использование битовых полей полностью непереносимо, даже между различными компиляторами на одной платформе.