私は多くのコードを実行していますが、これを最適化したいと思います。それは次のようになります。高速双方向ビットシフト?
int exponent;
uint32_t mantissa;
if (exponent < 0) {
return mantissa << -exponent;
} else {
return mantissa >> exponent;
}
それは目的だ、非常に明確である、それは右シフトすべきmantissa
をexponent
が負になることができexponent
場所で。
できるだけ早くこれをコード化する方法がありますか?
他の興味深い情報がありますが、ここではmantissaは23ビットの整数で、指数の範囲は[-127、+128]です。 (はい、IEEE 754 :)。 – orlp
+1:賢い。最大のネイティブタイプも64ビット長であるマシンでは、仮数がより大きい(64ビット)同様のトリックはないと思います。 –