for(;n;n>>=1) 表示:n 从 n 开始,不断去掉(二进制)最后一位(也等于不断除以 2)(且n!=0),如:n =10,二进制为 n = 1010.
所以
for(;n;n>>=1){
cout<<n<<" ";}
输出的结果为:
10 5 2 1
备注:10=>1010 5=>0101 2=>0010 1=>0001
所以,for(;n;n>>=1)=>while(n!=0) n=n/2;
for(;n;n>>=1) 表示:n 从 n 开始,不断去掉(二进制)最后一位(也等于不断除以 2)(且n!=0),如:n =10,二进制为 n = 1010.
所以
for(;n;n>>=1){
cout<<n<<" ";}
输出的结果为:
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