Порядок байтов с плавающей точкой?

Я пишу клиенту и серверу для офшорного средства моделирования в реальном времени, и, поскольку я должен отправить много данных через сокет, я использую двоичные данные для максимизации суммы данных, которые я могу отправить. Я уже знаю о целочисленном порядке байтов, и как использовать htonl и ntohl для хитрости проблем порядка байтов, но моего приложения, как почти все программное обеспечение моделирования, соглашения с большим количеством плаваний.

Мой вопрос: Есть ли некоторая проблема порядка байтов whean контакт с двоичными форматами чисел с плавающей точкой? Я знаю, что все машины, где мой выполненный код будет использовать реализацию IEEE плавающих точек, но там некоторая проблема порядка байтов при контакте с плаваниями?

Так как у меня только есть доступ к машинам с тем же порядком байтов, я не могу протестировать это один. Так, я буду радоваться, может ли кто-то помочь мне с этим.

Заранее спасибо.

38
задан cake 31 May 2010 в 17:50
поделиться

3 ответа

Да, плавающая точка может зависеть от эндианальности. Смотрите Преобразование плавающих значений из big endian в little endian, не забудьте прочитать комментарии.

10
ответ дан 27 November 2019 в 03:56
поделиться

РЕДАКТИРОВАТЬ: СЛЕДУЮЩИЙ ОТВЕТ НЕПРАВИЛЬНЫЙ (оставляя, чтобы люди знали, что это «несколько популярное» мнение неверно, пожалуйста, прочтите принятый ответ и комментарии к этому ответу)

--WRONG ANSWER BEGIN -

Не существует таких вещей, как порядок следования байтов с плавающей запятой, порядок байтов целых чисел и т. Д. Это просто порядок байтов двоичного представления. Либо машина с прямым порядком байтов, либо с прямым порядком байтов. Это означает, что он будет либо представлять MSb / MSB в двоичном представлении любого типа данных как его первый бит / байт или последний бит / байт. Вот и все.

- НЕПРАВИЛЬНЫЙ ОТВЕТ ---

-6
ответ дан 27 November 2019 в 03:56
поделиться

Согласно Википедия ,

Плавающая точка и порядок байтов

На некоторых машинах, в то время как целые числа были представлен в форме с прямым порядком байтов, числа с плавающей запятой были представлены в форме с прямым порядком байтов. Потому что есть много чисел с плавающей запятой форматы, а также отсутствие стандартного "сетевое" представление, без стандарта для передачи значений с плавающей запятой было сделано. Это означает, что данные с плавающей запятой, записанные на одном машина может не читаться на другой, и это так, даже если оба используют IEEE 754 с плавающей запятой арифметика, поскольку порядок байтов представление памяти не является частью спецификация IEEE.

18
ответ дан 27 November 2019 в 03:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: