私はおよそ対数目盛にマップしたい32から8191の範囲の整数値を持っています。ベース2を使用していた場合は、先行ゼロビットを数えて8スロットにマップすることができますが、これはあまりにも粗雑です。私は32スロットが必要です(そしてもっと良くなるでしょうが、私はそれらを32ビットの値でビットにマップする必要があります)。これは対数の約1.18-1.20になります。誰でもこの値を計算するためのいくつかのトリック、または合理的な近似を、非常に速く持っていますか?特別な場合の高速整数の対数
私の直感は、条件付きで2つまたは3つの部分範囲に分割し、それぞれに小さなルックアップテーブルを使用していますが、結果を精算すると、特に結果が正確ではなく、大まかに対数である必要があるためです。
私は(dlmallocが頭に浮かぶ)の前に行って何かを見てきましたが、私はそれは対数から外れてどのくらい好きかどうかは知りません。たぶんそれは悪いことではないでしょう。 –
浮動小数点を使用して、それらのビットをうまく組み立てることができるのだろうか... –