算法笔记-进制转换

进制转换题目

PAT A1019

十进制转其他进制

string tp(int y,int p) {
    int temp; //每次取模结果-即:转换后的当前位数字或字母 
    string s;
    do {
        temp = y%p; //取模 
        y/=p; //当前处理位已处理完,从y中删除 
        if(temp>=10) s+=temp-10+'A'; //若大于等于10,用字母 
        else s+=temp+'0';
    } while(y!=0);
    reverse(s.begin(),s.end());  //s中结果是从低位到高位,反转结果,使结果从高位到低位 
    return s;
}

其他进制转十进制

int pt(string x,int p) {
    int sum=0,index=0,t=0; // sum是最后的转换结果;index是权;t是当前位数字 
    for(int i=x.length()-1; i>=0; i--) { // 从低位到高位处理 
        t = isdigit(x[i])?x[i]-'0':x[i]-'A'+10; //取出当前位数字,若是字母转换为大于等于10的数字 
        sum += t*pow(p,index++); //累加和 记录当前位数字乘以基数的权次幂 
    }
    return sum;
}

原文链接: https://www.cnblogs.com/houzm/p/13335206.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    算法笔记-进制转换

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/367978

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午6:09
下一篇 2023年3月2日 下午6:09

相关推荐