相关疑难解决方法(0)

快速计算64位整数的log2

一个伟大的编程资源,Bit Twiddling Hacks,提出(这里)以下方法来计算32位整数的log2:

#define LT(n) n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n
static const char LogTable256[256] = 
{
    -1, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
    LT(4), LT(5), LT(5), LT(6), LT(6), LT(6), LT(6),
    LT(7), LT(7), LT(7), LT(7), LT(7), LT(7), LT(7), LT(7)
};

unsigned int v; // 32-bit word to find the log of
unsigned r;     // r will be lg(v)
register …
Run Code Online (Sandbox Code Playgroud)

c lookup 64-bit bit-manipulation 32bit-64bit

45
推荐指数
6
解决办法
3万
查看次数

标签 统计

32bit-64bit ×1

64-bit ×1

bit-manipulation ×1

c ×1

lookup ×1