字符串转16进制算法 16进制转字符串算法实现 bin2hex hex2bin C源码

本文提供了一种将字符串转换为16进制表示形式及逆过程的方法。通过具体的C语言代码示例,详细解释了如何进行转换。

. . . . 废话不多说,上代码
. . . . 字符串转16进制的 bin2hex

    char *temp_p = "IM THE TEXT";
    int len = strlen(temp_p);
    char temp_array[1024] = {0};
    int count;
    unsigned char tmp = 0;
    for (count = 0; count < 2 * len; count++)
    {
        tmp = (temp_p[count / 2] >> (count % 2 ^ 1 * 4)) & 0xF;
        if (tmp  >= 0x0 && tmp  <= 0x9)
            temp_array[count] = tmp + '0';
        else 
            temp_array[count] = tmp - 0xa + 'a';
    }
    // gcry_sexp_sprint(a, GCRYSEXP_FMT_ADVANCED, test, 1024);
    // printf("This is A len %d:\n%s.\n\n\n", strlen(test), test);
    printf("The HEX len is %d, Text is %s.\n\n\n", 2 * len, temp_array);

. . . . 然后是16进制转字符串的 hex2bin

    char *data = "0123456789ABCDEF"
    int len = strlen(data);
    unsigned char bin[512] = {0};
    int count;
    unsigned char tmp = 0;
    for (count = 0; count < len; count++) {
        tmp = tmp << 4;
        if (data[count] >= '0' && data[count] <= '9')
            tmp += data[count] - '0';
        else if (data[count] >= 'a' && data[count] <= 'f')
            tmp += data[count] - 'a' + 0xA;
        else if (data[count] >= 'A' && data[count] <= 'F')
            tmp += data[count] - 'A' + 0xA;
        else 
            fprintf(stderr, "Invalid hex character: %c\n", data[count]);
        bin[i / 2] = tmp;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值