for(i=0x8000;i>0x8; i>>=1)是个循环语句
等价于
for(i=0x8000;i>0x8; i++) 不过是个死循环,初始值都比0x8大,更何况执行一次就自动加1一次
还等价
i=0x8000
while(i>0x8)
{
i=i+1;
}
>>是右移的意思。运算结果是除以2.
0x8000转成十进制是32768,0x8转十进制为8.
翻译过来。这句语句的意思是
for(int i=32768;i>8;i/=2){
......
}
所以,不是死循环的。
那是十六进制