1. 程式人生 > 其它 >2966. 二進位制與十六進位制

2966. 二進位制與十六進位制

技術標籤:ECNU OJc++

2966. 二進位制與十六進位制

輸入一個十進位制數 ,將它轉換成二進位制與十六進位制分別輸出。

輸入格式

在這裡插入圖片描述

輸出格式

在這裡插入圖片描述

樣例

input

4
7
17
16
300

output

case #0:
111 7
case #1:
10001 11
case #2:
10000 10
case #3:
100101100 12C

華點

  1. 注意輸入“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方法

  1. printf("%X",n); 用這種方法輸出16進位制;