MATH_ILog2

構文

#include <nitro/math.h>
int MATH_ILog2( u32 x );
 
  

引数

x 対数を求める数値

返り値

x が非零の場合は x の 2 を底とした対数の整数部分。x == 0 の場合のみ特別に -1 を返す。

説明

2 を底とした対数を計算し、その整数部分を返します。実際にはこの演算は、x の中で最初に立っているビット位置を見つける演算と同等です。対数ですので、引数は正の数でなければなりません。0 を与えた場合は特別に -1 を返します。

CLZ 命令をサポートする ARM9 の ARM コードでは、31 - clz(x) を計算するインライン関数となりますので、2命令で実行可能です。なお、ARM9 の Thumb コードや ARM7 では通常の関数として実装されています。

参照

MATH_CountLeadingZeros

履歴

2004/12/14 初版