a 进制转 b 进制(2~16)

张开发
2026/4/19 13:43:54 15 分钟阅读

分享文章

a 进制转 b 进制(2~16)
进制表现符号为0 ~ 9 A ~ F。输入一行表示三个整数 a n b表示将a进制n转化为b进制整数。思路 1.先将a进制 n 转化为十进制数ans_10位权分离2.再将ans_10转化为b进制数ans从低位到高位转化每次将ans_10对b求余转化为字符拼接成字符串最后反转字符串#includebits/stdc.h using namespace std; int main(){ int a,b; string s; cin a s b; int len_s s.length()-1; long long ans_10 0; for(char c : s){//s: a进制转十进制 c toupper(c); int num; if(c 0 c 9) num c - 0; else num c - A 10; ans_10 num*(pow(a,len_s)); len_s--; } // cout ans_10 endl; string ans; if(ans_10 0) ans 0; else{ while(ans_10 0){//ans: 十进制转b进制 int now ans_10 % b; char c; if(now 10){//当前位置为数字 c now 0; }else{//当前位置为字母 c now - 10 A; } ans ans c;//字符串拼接 ans_10 ans_10 / b;//更新 ans_10 } reverse(ans.begin(),ans.end());//反转字符串正序输出 } cout ans endl; return 0; }

更多文章