十进制和二进制(1176)
综合
发布于2024年2月11日 22:07
阅读数 771
- #include<iostream>
- #include<string>
- #define N 4000
- using namespace std;
- int conversion(int d[],int data[],int n,int x,int y){
- int size=0;
- for(int i=0;i<n;){
- int k=0;
- for(int j=i;j<n;j++){
- int t=(d[j]+k*x)%y;
- d[j]=(d[j]+k*x)/y;
- k=t;
- }
- data[size++]=k;
- while(d[i]==0) i++;
- }
- return size;
- }
- int main(){
- string s;
- int d[N],data[N];
- while(cin>>s){
- for(int i=0;i<s.length();i++)
- d[i]=s[i]-'0';
- int n=conversion(d,data,s.length(),10,2);
- int start;
- for(start=0;data[start]==0;start++);
- for(int i=start;i<n;i++)
- data[i-start]=data[i];
- n=conversion(data,d,n-start,2,10);
- for(int i=n-1;i>=0;i--)
- cout<<d[i];
- cout<<endl;
- }
- return 0;
- }
登录后发布评论
暂无评论,来抢沙发