1.十进制转十六进制
转换流程
1.每次取出 要转化的数 与 要转化的进制 的余数
2.将余数根据大小,转化成要对应进制的正确表达形式
3.将最后得到的字符串翻转
直接上代码
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
typedef long long ll;
//十进制转十六进制
string s; //存放十六进制的字符串
int main() {
ll x;
cin>>x;
while(x){
int remainder = x%16; //拿到余数,对余数进行处理
x = x/16; //这两步可以对比以十进制获取一个整数的每一位
if(remainder < 10){
s += remainder + '0'; //将整数转为字符
}else{
s += remainder - 10 + 'A';
}
}
reverse(s.begin(),s.end()); //最后要进行翻转
cout<<s<<endl;
return 0;
}
2.十六进制转十进制
转换流程
1.先将要转换的字符串 翻转
2.取出每一位 字符,将其转化成 整型,然后 乘上 本身进制的 i 次方
3.累加
代码
#include <iostream>
#include <algorithm>
#include <string>
#include <cmath>
using namespace std;
typedef long long ll;
string s;
//十六进制转十进制
int main(){
cin>>s;
ll ans = 0;
reverse(s.begin(),s.end());//先进行翻转,先处理低位
for(int i=0;i<s.size();i++){
int x;
if(s[i]<='9'){
x = s[i] - '0';
}else{
x = s[i] - 'A' + 10;
}
ans += pow(16,i) * x;
}
cout<<ans<<endl;
return 0;
}