まず、xがゼロの場合、ゼロを返します。
次に、 のゼロ以外の最上位ビットのインデックスを見つけますx。それを呼び出しますi。
iが 24 未満の場合、正規化された仮数を取得するために左シフトxします。23 - iここで、ビット 23 をクリアして暗黙のビットを非表示にし、ビット 23:30 を127 + iバイアス指数である に設定します。結果を返します。
それ以外の場合は、切り捨てによって正規化された仮数を取得するために右シフトxしi - 23て、暗黙のビットをクリアし、指数を上記のように設定します。目的の丸めモードが切り捨てまたはマイナス無限大への丸めである場合は、これで完了です。それ以外の場合は、 の下部からシフトされたビットを確認する必要がありますx。目的の丸めモードが「プラス無限大への丸め」であり、これらのビットのいずれかが設定されている場合は、結果に 1 を加えて返します。最後に、目的の丸めモードが最も近い同数に丸める (IEEE-754 のデフォルト) 場合は、次の 3 つのケースがあります。
- 末尾のビットは
b0...次のとおりです。切り捨てられた結果を返します。
- 末尾のビットは次の
b1000...とおりです。これは正確に中途半端なケースです。切り捨てられた結果を呼び出す場合はt、返す必要がありますt + (t&1)。tつまり、が奇数の場合にのみ切り上げます。
- 末尾のビットは
b1...1...次のとおりです。切り捨てられた結果に 1 を追加して返します。