C ++ Плавающая точка представление для Big/Little EndianC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ Плавающая точка представление для Big/Little Endian

Сообщение Anonymous »

Я пытаюсь составить союз с представлением 32-битного номера с плавающей запятой IEEE. Пока что у меня есть: < /p>

Код: Выделить всё

#include 

struct FloatRepresentation{
union {
float value;
struct { uint32_t sign: 1; uint32_t exponent: 8; uint32_t mantissa: 23; };
}
}
Это облегчит и (возможно) быстрее просмотреть отдельные компоненты плавания, например, в функции get_fraction () или get_exponent () , чем использование маскировки. Endian для интегральных типов, но такие битсты, как этот, разрывает это? Например: < /p>
#if IS_BIG_ENDIAN
struct { uint32_t mantissa: 23; uint32_t exponent: 8; uint32_t sign: 1; };
#else
struct { uint32_t sign: 1; uint32_t exponent: 8; uint32_t mantissa: 23; };
#endif
< /code>
Есть ли простой способ сделать это совместимым с разными энданами? Это делает это автоматически?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... tle-endian
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»