进制转换的核心式子
此处 为 进制
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;
- }