topbinfinder.cpp
来自「简单而清晰的使用二分法求最高位」· C++ 代码 · 共 22 行
CPP
22 行
template <typename T>
int highest_bit(T n)
{
typedef char T_must_be_unsigned_type[T(-1)>0];
if(n>0) {
int i = 0;
int m = sizeof(T)*CHAR_BIT/2;
while(n!=1) {
if(n>>m) {
i += m;
n >>= m;
}
m /= 2;
}
return i;
} else {
return -1;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?