c - 在C中以十六进制读取文件内容

标签 c hex file-handling

我有一个十六进制值保存为 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/

相关文章:

c - pusha汇编语言指令

c++ - Ffmpeg header 不在 Windows 中编译

regex - 模式属性的 HTML 5 十六进制字符串

c - c中的文件处理

c++ - 无法使用 ios :ate in c++ 写入文本文件

python - 我只想从测试文件中删除一个搜索行

c - 我可以使用哪些格式说明符?

c - C 宏中的 printf

c - Unicode 转义序列与十六进制值

十六进制到十六进制的 Python 字符串(带前导零)