. . . . 废话不多说,上代码
. . . . 字符串转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;
}

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

被折叠的 条评论
为什么被折叠?



