# 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 初版