文章

99

粉丝

120

获赞

8

访问

98.7k

头像
十进制和二进制(1176)
综合
发布于2024年2月11日 22:07
阅读数 771

  1. #include<iostream>
  2. #include<string>
  3. #define N 4000
  4. using namespace std;
  5. int conversion(int d[],int data[],int n,int x,int y){
  6. int size=0;
  7. for(int i=0;i<n;){
  8. int k=0;
  9. for(int j=i;j<n;j++){
  10. int t=(d[j]+k*x)%y;
  11. d[j]=(d[j]+k*x)/y;
  12. k=t;
  13. }
  14. data[size++]=k;
  15. while(d[i]==0) i++;
  16. }
  17. return size;
  18. }
  19. int main(){
  20. string s;
  21. int d[N],data[N];
  22. while(cin>>s){
  23. for(int i=0;i<s.length();i++)
  24. d[i]=s[i]-'0';
  25. int n=conversion(d,data,s.length(),10,2);
  26. int start;
  27. for(start=0;data[start]==0;start++);
  28. for(int i=start;i<n;i++)
  29. data[i-start]=data[i];
  30. n=conversion(data,d,n-start,2,10);
  31. for(int i=n-1;i>=0;i--)
  32. cout<<d[i];
  33. cout<<endl;
  34. }
  35. return 0;
  36. }
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发