在此循环中:
for( i = 0; i < N>>1; i++)
每次重复时 N 值都会发生变化吗?即如果 N=1024,则第一个循环执行
for( i = 0; i < 512; i++)
下一个循环会执行
for( i = 0; i < 256; i++)
最佳答案
事实并非如此。如果您想这样做,那么像下面这样的构造就可以做到这一点:
for( i = 0; i < N; N >>= 1, i++)
或者将转变放在循环内。如果没有赋值语句,移位运算符本身不会更改操作数的值。
关于c - 按位运算改变值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29711572/