我正在用 C 编写代码,并希望找出最有效的方法来确定 2 除以一个数字的次数;即 5 = 0, 8 = 3。我的问题是,对于这段代码,我利用按位运算来加速运行时,总体代码是O(log N),有什么计算或分析可以优化这段代码吗?
int Prime_Factor_Two(int n) {
int k = 0;
while(~(n&1) + 2){
n = n >> 1;
k +=1;
}
return k;
}
Run Code Online (Sandbox Code Playgroud)