c++char的值为000011001100110001101011每4位转成十六进制数字实用程序实现
以下是一个实现将二进制转换为十六进制的程序:
#include
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/eXMm 著作权归作者所有。请勿转载和采集!