#include
using namespace std;
int main()
{
int i=0,r,n,a[10];
char b[16]={'1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
cin >> n>>r;
do{
a[i]=n%r;
n=n/r;
i++;
}while(n!=0);
for(--i;i>=0;--i)
{
n=a[i];
cout << b[n];
}
system("pause");
return 0;
}
运行结果下来是有偏差的
#include <iostream>
using namespace std;
int main()
{
int i = 0, r, n, a[10];
char b[17] = { '0', '1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
cin >> n >> r;
do {
a[i] = n % r;
n = n / r;
i++;
} while (n != 0);
for (--i; i >= 0; --i)
{
cout << b[a[i]];
}
cout << endl;
return 0;
}
// modify basefield
#include <iostream> // std::cout, std::dec, std::hex, std::oct
int main () {
int n = 70;
std::cout << std::dec << n << '\n';
std::cout << std::hex << n << '\n';
std::cout << std::oct << n << '\n';
return 0;
}
char b[16]={'1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
你少了一个0吧?会错位啊
char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};