Плавающая точка - это реализация, определенная в C. Таким образом, никаких гарантий нет.
Наш код должен быть переносимым, мы обсуждаем, целесообразно ли использовать IEEE754 поплавки в нашем протоколе. По соображениям производительности было бы неплохо, если бы нам не приходилось конвертировать назад и вперед между форматом фиксированной точки при отправке или получении данных.
Хотя я знаю, что между платформами и архитектурами могут быть различия относительно размера long
или wchar_t
. Но я не могу найти какой-либо конкретной информации о float
и double
.
То, что я нашел до сих пор, что порядок байтов может быть отменен на платформах с большим энтидом. Хотя существуют платформы без поддержки с плавающей запятой, где код, содержащий float
и double
, даже не связывается. В противном случае платформы, похоже, придерживаются единой и двойной точности IEEE754.
Итак, можно ли предположить, что плавающая точка находится в IEEE754, когда она доступна?
EDIT: в ответ на комментарий:
Каково ваше определение "безопасно"?
Безопасным я имею в виду, что битовая диаграмма на одной системе означает одно и то же на другой (после вращения байта, чтобы иметь дело с контентом).