十进制数转N(N<36)进制
十进制数转N(N<36)进制
/* 十进制转 n 进制(n 大于10 用ABCDEF来表示) */ #include <iostream> #include <vector> using namespace std; // 只能将十进制转换为小于10的进制 void SysConvert1(int num, int n) // 十进制数num转为 n进制 { int mod = num % n; num = num / n; if (num == 0) { // 当商为0的时候,就不用继续做短除法了 // 跳到printf开始从后往前依次打印就行了 } else { SysConvert1(num, n); } cout << mod; } // 可以将十进制转换为其他进制 void SysConvert2(int num, int n) { int c; vector<int> v; if (num < 0) { num = -num; cout << '-'; } while (num!=0) { c = num % n; num = num / n; v.push_back(c); // 将余数按顺序存入数组中 } for (int i=v.size()-1;i>=0;i--) { // 输出转换后的序列 if (v[i] >= 10) { // 若为十六进制等,则输出相应的字母 cout << (char)(v[i] + 55); } else { // 否则直接输出数字 cout << v[i]; } } cout << endl; } int main() { long num; int n; cin >> num >> n; SysConvert2(num, n); return 0; }
知行合一,
翻万卷书,游千里路,会百家才