输入十进制整数N和待转换的进制x(2、8、16),分别代表十进制N转换成二进制、八进制和十六进制,输出对应的结果。十六进制中A~F用大写字母表示。
输入格式:
输入两个整数N(十进制整数N)和x(x进制),中间用空格隔开。
输出格式:
输出对应的结果。
样例">输入样例:
在这里给出一组输入。例如:
123 2
输出样例:
在这里给出相应的输出。例如:
1111011
输入样例:
在这里给出一组输入。例如:
123 16
输出样例:
在这里给出相应的输出。例如:
7B
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
char x[6]={'A','B','C','D','E','F'};
char a[1000];
int cnt=0;
if(n==0){
cout<<"0";
return 0;
}
if(m==16){
while(n!=0){
int b=n%16;
if(b>9){
a[cnt]=x[b%10];
}
else{
a[cnt]=(n%16)+'0';
}
n/=16;
cnt++;
}
}
else if(m==8){
while(n!=0){
a[cnt]=(n%8)+'0';
n/=8;
cnt++;
}
}
else{
while (n!=0)
{
a[cnt]=(n%2)+'0';
n/=2;
cnt++;
}
}
for(int i=cnt-1;i>=0;i--){
cout<<a[i];
}
return 0;
}