- C20250002's blog
r
- 2022-10-31 12:26:18 @
#include <math.h>
#include <iostream>
using namespace std;
int blen(int d){
for(int k=0;k<=31;k++){
if(d>=pow(2,k-1)&&d<pow(2,k)){
return k;
break;
}
}
}
int bdown(int y){
return y-pow(2,blen(y)-1);
}
int bds(int i,int j){
int bin=i;
for(int g=1;g<=j;g++){
bin=bdown(bin);
}
return bin;
}
int bminus(int u){
for(int h=0;h<=blen(u);h++){
if(bds(u,h)-bds(u,h+1)!=0){
cout<<bds(u,h)-bds(u,h+1)<<endl;
}
}
return 0;
}
int main(){
int e;
cout<<"输入一个数,以输出2进制拆分"<<endl;
cin>>e;
bminus(e);
return 0;
}
bye