2966. 二進位制與十六進位制
阿新 • • 發佈:2021-01-30
2966. 二進位制與十六進位制
輸入一個十進位制數 ,將它轉換成二進位制與十六進位制分別輸出。
輸入格式
輸出格式
樣例
input
4
7
17
16
300
output
case #0:
111 7
case #1:
10001 11
case #2:
10000 10
case #3:
100101100 12C
華點
- 注意輸入“0”,特殊處理一下
#include <iostream>
#include <vector>
using namespace std;
char change(int num){
switch(num){
case 0:return '0';break;
case 1:return '1';break;
case 2:return '2';break;
case 3:return '3';break;
case 4:return '4';break;
case 5:return '5';break;
case 6:return '6';break;
case 7:return '7';break;
case 8:return '8';break;
case 9:return '9';break;
case 10:return 'A';break;
case 11:return 'B';break;
case 12:return 'C';break;
case 13:return 'D';break;
case 14:return 'E';break;
case 15:return 'F';break;
}
}
vector<char> BH(int n,int bh){
vector<char> v;
int t;
if(n==0) v.insert(v.begin(),change(0));
while(n!=0){
t=n%bh;
v.insert(v.begin(),change(t));
n=n/bh;
}
return v;
}
int main()
{
vector<char> v;
int N,num;
cin>>N;
for(int i=0;i<N;i++){
cin>>num;
cout<<"case #"<<i<<":"<<endl;
v=BH(num,2);
for(int j=0;j<v.size();j++){
cout<<v[j];
}
cout<<" ";
v.clear();
v=BH(num,16);
for(int j=0;j<v.size();j++){
cout<<v[j];
}
cout<<endl;
}
return 0;
}
DL方法
- printf("%X",n); 用這種方法輸出16進位制;