コード例 #1
0
static unsigned int prescale(unsigned int n)
{
	if(n <= 4095)
	{
		return 0;
	}
	
	n = (n * 16)/65536;
	
	if (!isPowerOfTwo(n))
	{
		n = nearestPowerOf2(n);
	}
    return (Log2n(n) + 1);
}
コード例 #2
0
unsigned int Log2n(unsigned int n)
{
   return (n > 1)? 1 + Log2n(n/2): 0;
}
コード例 #3
0
int findPosition(unsigned n)
{
    if (!isPowerOfTwo(n))
        return -1;
    return Log2n(n) + 1;
}