被除数除以除数,余数一定小于除数。
如果除数大于10,余数就有可能大于9,但表示的时候要输出字母表示。如16进制中"A"表示"10",“F"表示"15”。如36进制中“Z”表示"35"。
运行结果:
代码如下:
#include <iostream>
using namespace std;
int main(){
//a,b,c分别表示被除数、商、余
//n表示要转换的数
//m表示目标进制
int n, m, a, b, c[1000];
cout << "请输入一个十进制数:";
cin >> n;
a = n;
cout << "你想将这个数转化为几进制(最小:2,最大:36):";
cin >> m;
if(m < 2 || m > 36){
cout << "进制错误!";
return 0;
}
for(int i=0; i<1000; i++){
c[i] = m; //初始化1个不可能的数,如8进制不存在8
}
for(int i=0; b!=0; i++){
b = a / m;
c[i] = a % m;
a = b;
}
cout << "对应的" << m << "进制数:";
for(int i=999; i>=0; i--){
if(c[i] != m){
if(c[i] < 10){
cout << c[i]; //"0"到"9"
}
else{
cout << (char)(c[i] + 55); //"A"到"Z"
}
}
}
return 0;
}
氷鸢鸢鸢
2020.2.19