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; }