练习时突然遇到的其他进制转十进制的两种c++代码

来源:互联网 发布:js json数组排序 编辑:程序博客网 时间:2024/05/16 10:29

 

一种是从个位开始:

    while(cin>>b!=0){if(b==0) break;ans=0;shu=0;gets(s);for(int i=1;i<=strlen(s)-1;i++)  a[i]=s[i]-'0';int k=0;for(int i=strlen(s)-1;i>=1;i--) {   shu+=a[i]*pp(b,k);   k++;}

包含一个子函数

int pp(int x,int y){  //x^yif(y==0) return 1;int xx=x;while(--y!=0)xx*=x;return xx;}



第二种是从最高位开始:

while(scanf("%d",&b)&&b){   scanf("%s",a);   int len=strlen(a);   int inum=0;   for(int i=0;i<len;i++)       inum=inum*b+a[i]-'0';}


第二种是在sd那儿得来的,不过真的很巧妙



 

原创粉丝点击