进制转换的核心式子
此处 为 进制
b进制转为10进制(秦九韶算法)
用秦九韶算法可以快速求解:
//s是b进制数的字符串形式
int get(string s, int b) // 将b进制的数转化成十进制
{
int res = 0;
// 秦九韶算法
for (auto c : s)
res = res * b + c - '0';
return res;
}
例题:《进制转换》
10进制转为b进制(短除法)
每次模 ,然后余数就是从个位、十位的顺序,用一个 存起来,最后倒序输出即可。
例如:将 进制数 转成 进制数。
#include <bits/stdc++.h>
using namespace std;
vector<int> a;
string s;
void solve(){
int n = 226;
int b = 4; //4进制为3202
while(n){
a.push_back(n % b);
n /= b;
}
for(int i = a.size() - 1; i >= 0; i--) printf("%d", a[i]);
}
int main(){
int _ = 1;
while(_ -- ){
solve();
}
return 0;
}