bin文件转hex文件C语言
时间: 2023-08-11 16:06:45 浏览: 107
可以使用C语言编写一个程序将二进制文件转换为十六进制文件,示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
FILE *input, *output;
unsigned char *buffer;
long fileLen;
size_t result;
// 打开二进制文件
input = fopen(argv[1], "rb");
if (!input) {
printf("Error opening input file!");
return 1;
}
// 获取文件长度
fseek(input, 0, SEEK_END);
fileLen = ftell(input);
rewind(input);
// 分配缓存区
buffer = (unsigned char *)malloc(sizeof(unsigned char) * fileLen);
if (!buffer) {
printf("Memory error!");
fclose(input);
return 2;
}
// 读取二进制文件内容到缓存区
result = fread(buffer, 1, fileLen, input);
if (result != fileLen) {
printf("Reading error!");
free(buffer);
fclose(input);
return 3;
}
// 创建十六进制文件
output = fopen(argv[2], "w");
if (!output) {
printf("Error opening output file!");
free(buffer);
fclose(input);
return 4;
}
// 将缓存区内容写入十六进制文件
for (int i = 0; i < fileLen; i++) {
fprintf(output, "%02X", buffer[i]);
}
// 关闭文件和释放缓存区
fclose(input);
fclose(output);
free(buffer);
printf("Conversion completed!");
return 0;
}
```
在命令行中运行该程序时,需要指定输入的二进制文件和输出的十六进制文件,例如:
```
./bin2hex input.bin output.hex
```
其中,`input.bin` 是待转换的二进制文件,`output.hex` 是生成的十六进制文件。
阅读全文