题目描述
编程输入十进制整数N(N:-32767~32767),请输出它对应的二进制,八进制,十六进制数
输入格式
一个整数N
输出格式
输出一行三个数,分别代表这个数的二进制,八进制,十六进制,通过空格分隔
输入样例
2
输出样例
10 2 2
数据范围与提示
16进制字母用小写表示,如15的16进制为f
代码展示
#include<bits/stdc++.h>
using namespace std;
int main(){
//freopen("/config/workspace/test/test","r",stdin);
int n;
cin>>n;
if(n==0){
cout<<0<<' '<<0<<' '<<0;
return 0;
}
int flag=0;
if(n<0){
n=-n;
flag=1;
}
stack<int>bi;
for(int i=n;i!=0;i/=2){
bi.push(i%2);
}
if(flag==1) cout<<'-';
while(!bi.empty()){
cout<<bi.top();
bi.pop();
}
cout<<' ';
if(flag==1) cout<<'-';
stack<int>ei;
for(int i=n;i!=0;i/=8){
ei.push(i%8);
}
while(!ei.empty()){
cout<<ei.top();
ei.pop();
}
cout<<' ';
string si="";
for(int i=n;i!=0;i/=16){
int temp=i%16;
if(temp<=9){
si+=temp+'0';
}
else{
temp='a'+temp-10;
char c=temp;
si+=c;
}
}
if(flag==1) si+='-';
for(int i=si.length()-1;i>=0;i--){
cout<<si[i];
}
return 0;
}