Почему IEEE-754 с плавающей точкой не подлежит обмену между платформами?

Это было утверждал что (даже учитывая байтовый порядок байтов) с плавающей точкой IEEE754 не гарантируется возможность обмена между платформами.

Так:

  • Почему, теоретически, IEEE с плавающей точкой не обменять между платформами?
  • Какие-либо из этих проблем актуальны для современных аппаратных платформ (например, i686, x64, arm)?

Если проблемы справедливы, не могли бы вы продемонстрировать пример, где это так (C или C ++ предпочтительнее)?


Мотивация: Несколько GPS производители обменять их двоичные форматы на (например) широту, долготу и необработанные данные в «значениях с плавающей запятой, соответствующих IEEE-754». Таким образом, я не могу выбирать текстовый формат или другой «портативный» формат. Следовательно, мой вопрос связан с тем, когда могут возникнуть или не возникнуть различия.

4

Решение

Пункт 3.4 стандарта IEEE 754 определяет двоичные кодировки формата обмена. Учитывая формат с плавающей запятой (ниже), формат обмена помещает бит знака в старший значащий бит, биты экспонентного смещения в следующие старшие биты и кодирование значащих битов в младшие значащие биты. Отображение из битов в байты не указывается, поэтому система может использовать порядок с прямым порядком байтов, порядок с прямым порядком байтов или другой порядок.

В разделе 3.6 указаны параметры формата для различной ширины формата, включая 64-разрядный двоичный файл, для которого имеется один знаковый бит, 11 битов поля экспоненты и 52 значащих бита поля. В этом пункте также указывается смещение экспоненты.

В пунктах 3.3 и 3.4 указаны данные, представленные этим форматом.

Таким образом, для обмена данными с плавающей точкой IEEE-754, кажется, системам нужно только договориться о двух вещах: какой формат использовать (например, 64-разрядный двоичный файл) и как получить биты назад и вперед (например, как отобразить биты в байты для записи в файл или сетевое сообщение).

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]