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 用于记录当前转换到的位置。
  • 在循环中,每次取出四个字符,将其转换为十进制数,然后根据其大小写入对应的十六进制字符。
  • 最后输出转换后的结果。
C++ 二进制字符串转十六进制实用程序

原文地址: https://www.cveoy.top/t/topic/lc1b 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录