M 进制数转换为N进制数

写的很粗糙,输入未进行验证,但是功能实现了,大家多多来检验下:

  1. #include<iostream>
  2. using namespace std;
  3. //m进制数转换为逆向字符串
  4. void ItoC(char*A ,int z,int &counter)
  5. {
  6.     int temp1,temp2;
  7.     counter=1;
  8.     temp1 = z%10;
  9.     temp2 = z/10;
  10.     A[0]=temp1+48;
  11.     while(temp2 != 0)
  12.     {
  13.         z=temp2;
  14.         temp1 = z%10;
  15.         temp2 = z/10;
  16.         A[counter++]=temp1+48;
  17.     }
  18. }
  19. //十进制数转换为n进制数
  20. void DtoN(char *A,int z,int n,int &counter)
  21. {
  22.     counter = 1;
  23.     A[0] = z%n+48;
  24.     z/=n;
  25.     while(z != 0)
  26.     {
  27.         A[counter++]=z%n+48;
  28.         z/=n;
  29.     }
  30. }
  31. int main()
  32. {
  33.     int i,m,n,z=0,x=1,counter1,counter2;
  34.     char A[10];
  35.     cout<<"This program will transform a m system number to a n system number!"<<endl;
  36.     cout<<"Please cin the M:";
  37.     cin>>m;
  38.     cout<<"Please cin the N:";
  39.     cin>>n;
  40.     cout<<"Then please cin the M system number:";
  41.     cin>>z;
  42.     ItoC(A,z,counter1);
  43.     //将M进制数转化为十进制数
  44.     //for(i=0;i<counter1;i++) cout<<A[i];
  45.     //cout<<endl;
  46.     z=0;
  47.     for(i=0;i<counter1;i++)
  48.     {
  49.         z+=x*(A[i]-48);
  50.         x*=m;
  51.     }
  52.     DtoN(A,z,n,counter2);
  53.     for(i=counter2-1;i>=0;i--)
  54.     {
  55.         cout<<A[i];
  56.     }
  57.     cout<<endl;
  58.     return 0;
  59. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值