一段代码看不懂,哪位能帮忙解释一下实现什么算法?
代码如下,哪位能帮忙解释一下,谢谢
/* Seal's algorithm with multiply expanded.
9 elementary ops plus an indexed load. */
int ntz8a( unsigned x )
{
static char table[64] = {32, 0, 1,12, 2, 6, u,13,
3, u, 7, u, u, u, u,14, 10, 4, u, u, 8, u, u,25,
u, u, u, u, u,21,27,15, 31,11, 5, u, u, u, u, u,
9, u, u,24, u, u,20,26, 30, u, u, u, u,23, u,19,
29, u,22,18, 28,17,16, u};
x = ( x & -x );
x = ( x<<4 ) + x; /* x = x*17. */
x = ( x<<6 ) + x; /* x = x*65. */
x = ( x<<16 ) - x; /* x = x*65535. */
return table[ x>>26 ];
}