2 つのプロセッサで実行されているプログラムがありますが、そのうちの 1 つは浮動小数点をサポートしていません。そのため、そのプロセッサで固定小数点を使用して浮動小数点計算を実行する必要があります。そのために、浮動小数点エミュレーション ライブラリを使用します。
最初に、浮動小数点をサポートするプロセッサ上の浮動小数点数の符号、仮数、および指数を抽出する必要があります。それで、私の質問は、単精度浮動小数点数の符号、仮数、および指数を取得する方法です。
この図の形式に従って、
それは私がこれまで行ってきたことですが、符号を除いて、仮数と指数はどちらも正しくありません。何かが足りないと思います。
void getSME( int& s, int& m, int& e, float number )
{
unsigned int* ptr = (unsigned int*)&number;
s = *ptr >> 31;
e = *ptr & 0x7f800000;
e >>= 23;
m = *ptr & 0x007fffff;
}