2566: 进制转换的方法

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:0

题目描述

#include<bits/stdc++.h>
using namespace std;
/*
【10进制转16进制】 

方法:除16取余,直到商为0结束,逆序输出

例如,将十进制11转为2进制输出 
11/2=5... ...1 
5/2=2 ... ...1
2/2=1 ... ...0
1/2=0 ... ...1 
*/
 
int main(){	
	int n;
	string s;
	cin>>n;
	while(n){
		if(n%16<10){	// 0~9
			s=char(n%16+'0')+s; 
		}else{		// A(10) B(11) C D E F(15)
			s=char(n%16+'A'-10)+s;
		}	
		n/=16;  
	}
	if(s==""){
		cout<<0;
	}else{
		cout<<s;
	}
	
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
/*
【10进制转16进制】 

方法:除16取余,直到商为0结束,逆序输出

*/
 
int main(){	
	int n;
	string t="0123456789ABCDEF";	//字符串列表法 
	string s;
	cin>>n;
	while(n){
		s=t[n%16]+s; 	
		n/=16;  
	}
	if(s==""){
		cout<<0;
	}else{
		cout<<s;
	}
	
	return 0;
}
#include<bits/stdc++.h>
using namespace std;
long long n,d[35],k;
int main(){
	cin>>n;
	if(n==0) cout<<0;
	while(n){
		d[k++]=n%16;
		n/=16;
	}
	for(int i=k-1;i>=0;i--){
		if(d[i]>9){
			cout<<char(d[i]-10+'A');
		}else{
			cout<<d[i];
		}
	}
    return 0;
}




		

来源/分类