2进制转16进制c++
时间: 2023-12-17 18:03:47 浏览: 104
以下是将二进制转换为十六进制的C++代码:
```
#include <iostream>
#include <string>
using namespace std;
// 将 4 位的 2 进制转换为 1 位的 16 进制
char num(string s){
// 从最低位开始按权展开,转换为10进制
// 再转换为16进制的字符
int r = 0, i, t = 1;
for(i = s.size() - 1; i >= 0; i--){
r = r + (s[i] - '0') * t;
t = t * 2;
}
char c;
// 存储1位的16进制字符
if(r < 10){
c = r + '0';
}else{
c = r + 'A' - 10;
}
return c;
}
int main(){
string s, t; // 存放二进制
cin >> s;
// 补 0
if(s.size() % 4 == 1){
s = "000" + s;
}else if(s.size() % 4 == 2){
s = "00" + s;
}else if(s.size() % 4 == 3){
s = "0" + s;
}
// 每4位一格,将4位的二进制转换为对应的16进制
for(int i = 0; i < s.size(); i = i + 4){
t = s.substr(i, 4);
cout << num(t);
}
return 0;
}
```
阅读全文