我有一个十六进制值保存为 hex.txt
的文件,其中有
9d ff d5 3c 06 7c 0a
现在我需要将它转换为字符数组
unsigned char hex[] = {0x9d,0xff,0xd5,0x3c,0x06,0x7c,0x0a}
我该怎么做?
最佳答案
这段代码完成了工作!!!,但需要我们用 #define FILELEN 15
初始化要转换的十六进制的大小
#include<stdio.h>
#define FILELEN 15
int ascii_to_hex(char c)
{
int num = (int) c;
if(num < 58 && num > 47)
{
return num - 48;
}
if(num < 103 && num > 96)
{
return num - 87;
}
return num;
}
int main()
{
FILE *fp = fopen("sample","r");
unsigned char c1,c2;
int i=0;
unsigned char sum,final_hex[FILELEN/2];
for(i=0;i<FILELEN/2;i++)
{
c1 = ascii_to_hex(fgetc(fp));
c2 = ascii_to_hex(fgetc(fp));
sum = c1<<4 | c2;
final_hex[i] = sum;
printf("%02x ",sum);
}
printf("\n");
}
关于c - 在C中以十六进制读取文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693841/