Подтвердить что ты не робот

Предельная точка?

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

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

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

Спасибо заранее.

4b9b3361

Ответ 2

Согласно Wikipedia,

Плавная точка и сущность

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

Ответ 3

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

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

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

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