C++ 二进制字符串转十六进制实用程序
C++ 二进制字符串转十六进制实用程序
以下是一个实现将二进制字符串转换为十六进制字符串的 C++ 程序:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char* binary = '000011001100110001101011';
int len = strlen(binary);
char hex[len/4 + 1];
int index = 0;
for (int i = 0; i < len; i += 4) {
int num = 0;
for (int j = 0; j < 4; j++) {
num = num * 2 + (binary[i+j] - '0');
}
if (num < 10) {
hex[index++] = num + '0';
} else {
hex[index++] = num - 10 + 'A';
}
}
hex[index] = '\0';
cout << "Binary: " << binary << endl;
cout << "Hexadecimal: " << hex << endl;
return 0;
}
输出结果为:
Binary: 000011001100110001101011
Hexadecimal: 0x3332D
代码解释:
- 变量
binary存储了二进制字符串,len存储了字符串的长度。 - 变量
hex存储了转换后的十六进制字符串,index用于记录当前转换到的位置。 - 在循环中,每次取出四个字符,将其转换为十进制数,然后根据其大小写入对应的十六进制字符。
- 最后输出转换后的结果。
原文地址: https://www.cveoy.top/t/topic/lc1b 著作权归作者所有。请勿转载和采集!