在这个循环中,:
for( i = 0; i < N>>1; i++)
N值在每次重复时都会发生变化吗?即如果N = 1024,那么第一个循环
for( i = 0; i < 512; i++)
,下一个循环
for( i = 0; i < 256; i++)
答案 0 :(得分:2)
没有。如果你想这样做,那么像下面这样的结构会这样做:
for( i = 0; i < N; N >>= 1, i++)
或者将转换置于循环内部。如果没有赋值语句,移位运算符本身不会更改操作数的值。
答案 1 :(得分:2)
不,您正在移动N
的值,但您没有为其分配新值,因此它不会更改。每次迭代都等同于:
for( i = 0; i < 512; i++)