У меня есть двоичный файл двойников, который мне нужно загрузить с помощью C++. Однако моя проблема заключается в том, что она была написана в формате большой буквы, но оператор fstream >> затем считывает число неправильно, потому что моя машина малозначительна. По-видимому, простая задача для решения целых чисел, но для парных и плавающих решений, которые я нашел, не будет работать. Как я могу (или должен ли я это исправить)?Почему байты с плавающей запятой отличаются от целочисленного байтового обмена?
Я прочитал это в качестве эталона для целых байтов свопинга:
How do I convert between big-endian and little-endian values in C++?
EDIT: Хотя эти ответы поучительно, я обнаружил, что моя проблема с самим файлом, а не формат двоичного файла данные. Я считаю, что мой байтовый обмен делает работу, я просто получаю запутывающие результаты. Спасибо за вашу помощь!
я ожидал бы двойной/поплавок байт обменивать решения работать точно так же (то есть, определить поплавок/int32 союз, напишите неправильный обратный порядок байт поплавок в нем, байт-своп в int32, и читать поплавок снова), поэтому я думаю, вы должны объяснить, какие решения вы пытались, которые не будут работать. –