1

数値のバイナリログを見つける方法があるかどうかを確認したかった. 数字の 4 があるとすると、2 をレイズして 4 を得るベキ乗は 2 です。

これはシフトとカウントで可能ですが、それはO(N)操作を使用します。どこかへ行く方法はありO(1)ますか?nx = 2^n

nここをxワンオペレーションで知りたいとかO(1)

4

1 に答える 1

2

x86 を指定したようBSRに、最上位の設定ビットの位置を報告する (ビットスキャン逆) オペコードが必要なようです。

[参考までに: big-O 表記法は、漸近的な複雑さ (つまり、N -> 無限大) を指します。N に有限の制限 (この場合は 32 または 64) がある場合、あまり意味がありません。]

于 2013-07-14T23:55:20.233 に答える