任意进制间的转换
以前只是研究某兩個進制A,B之間的轉化,現在推廣到任意進制。
其中十進制轉為B進制:除B取余,倒序排列目前的缺點是不能算小數和負數。
#include <bits/stdc++.h> using namespace std;int toTen(const string & old, const int base) {int res = 0;for(size_t i = 0; i != old.length(); i++) {if(isupper(old[i])) res = res * base + old[i] - 'A' + 10;else if(islower(old[i])) res = res * base + old[i] - 'a' + 10;else res = res * base + old[i] - '0';}return res; }deque<char> Tento(int ten, const int base) {deque<char> res;while(ten > 0){int t = ten % base;res.push_front(t>=10 ? (char)(t-10+'A') : (char)(t+'0'));ten /= base;}return res; }int main() {int x, y, ten; string old;printf("輸入原數:"); cin >> old;printf("輸入原數進制:"); cin >> x;printf("輸入要轉換到的進制:"); cin >> y;ten = toTen(old, x);deque<char> res = Tento(ten, y);for(size_t i = 0; i != res.size(); i++)printf("%c", res[i]);printf("\n");return 0; }
轉載于:https://www.cnblogs.com/kunsoft/p/5312751.html
總結
- 上一篇: js关联数组
- 下一篇: 超简易复制Model对象(为后续备忘录设