Как преобразовать значения big-endian и little-endian в С++?
EDIT: для ясности я должен перевести двоичные данные (значения с плавающей запятой с двойной точностью и 32-разрядные и 64-разрядные целые числа) из одной архитектуры процессора в другую. Это не связано с сетью, поэтому ntoh() и подобные функции здесь не работают.
EDIT # 2: Ответ, который я принял, относится непосредственно к компиляторам, на которых я нацелен (именно поэтому я его выбрал). Однако здесь есть и другие очень хорошие, более портативные ответы.