Один из возможных вариантов использования этого - захват битов мантиссы, битов экспоненты и знакового бита, если это необходимо.Для этого вы можете использовать объединение:
union doubleBits {
double d;
long l;
};
Вы можете установить дубль и установить его в объединении:
union doubleBits myUnion;
myUnion.d = myDouble;
И сдвинуть бит длинной части объединения после извлечениябиты примерно так:
myUnion.l >>= 1;
Поскольку число битов для каждой части двойного числа определено, это один из способов извлечь базовое представление битов.Это один из случаев использования, когда можно получить необработанные базовые биты.Я не знаком с Simulink, но если, возможно, именно поэтому двойник был смещен в первую очередь, это может быть способом достижения такого поведения в C. Тот факт, что это всегда было 12 бит, заставляет меня думать иначе, нона всякий случай решил, что стоит указать другим, кто наткнулся на этот вопрос.