Added GetNearestPowerOfTwo

Former-commit-id: 609d470e8478c659b816ad7d34fb9d56ad551b07
This commit is contained in:
Lynix 2013-06-18 21:06:41 +02:00
parent 5886238e2e
commit ebf402f138
2 changed files with 11 additions and 0 deletions

View File

@ -25,6 +25,7 @@ template<typename T> T NzClamp(T value, T min, T max);
template<typename T> T NzDegrees(T degrees); template<typename T> T NzDegrees(T degrees);
template<typename T> T NzDegreeToRadian(T degrees); template<typename T> T NzDegreeToRadian(T degrees);
unsigned int NzIntegralPow(unsigned int base, unsigned int exponent); unsigned int NzIntegralPow(unsigned int base, unsigned int exponent);
unsigned int NzGetNearestPowerOfTwo(unsigned int number);
unsigned int NzGetNumberLength(signed char number); unsigned int NzGetNumberLength(signed char number);
unsigned int NzGetNumberLength(unsigned char number); unsigned int NzGetNumberLength(unsigned char number);
unsigned int NzGetNumberLength(int number); unsigned int NzGetNumberLength(int number);

View File

@ -59,6 +59,16 @@ inline unsigned int NzIntegralPow(unsigned int base, unsigned int exponent)
return r; return r;
} }
inline unsigned int NzGetNearestPowerOfTwo(unsigned int number)
{
unsigned int x = 1;
// Tant que x est plus petit que n, on décale ses bits vers la gauche, ce qui revient à multiplier par deux
while(x <= number)
x <<= 1;
return x;
}
inline unsigned int NzGetNumberLength(signed char number) inline unsigned int NzGetNumberLength(signed char number)
{ {
// Le standard définit le char comme étant codé sur un octet // Le standard définit le char comme étant codé sur un octet