for(;n;n>>=1) 表示:n 从 n 开始,不断去掉(二进制)最后一位(也等于不断除以 2)(且n!=0),如:n =10,二进制为 n = 1010.
所以
输出的结果为:
10 5 2 1
备注:10=>1010 5=>0101 2=>0010 1=>0001
所以,for(;n;n>>=1)=>while(n!=0) n=n/2;
转载于:https://www.cnblogs.com/lxy050129/p/10297740.html
因篇幅问题不能全部显示,请点此查看更多更全内容