这行代码有什么作用?

1 c bit-shift bit

对此代码的作用感到困惑

for (L=0; L < levels; L++, N_half>>=1){
    func( y, N_half);
} // end: levels for loop
Run Code Online (Sandbox Code Playgroud)

特别是这个"N_half >> = 1"

谢谢

D.S*_*ley 9

它通过在每次迭代时将N_half除以2来推进循环.它相当于:

for (L=0; L<levels; ++L, N_half=N_half / 2) {
    ...
}
Run Code Online (Sandbox Code Playgroud)


cha*_*aos 5

N_half>>=1 在N_half上执行1位按位右移,(对于非负数)将其除以2.

>>=>>+=+.