hexfile - conversor de binario/hexadecimal

Publicado por smith unix (última atualização em 09/01/2026)

[ Hits: 130 ]

Download hexfile.c




Esse programa faz a leitura de um arquivo binário, por exemplo, um *.png e converte para um arquivo de texto *.hex, onde se encontra os valores hexadecimal, e também pode compilar um *.hex de volta para *.png, caso queira!
modo de usar:
abrir
./hexfile -a imagem.png
compilar
./hexfile -f imagem.png.hex

  



Esconder código-fonte

#include <stdio.h>
#include <string.h>
#include <errno.h>
    int main(int argc, char *argv[]){
      // abre e fecha arquivos
      FILE *fileOpen, *fileClose;
      // byte a byte
      int byte = 0;
      // uso ./hexfile -a (abrir)
      // ou ./hexfile -f (fechar)
      if(strcmp(argv[1], "-a") == 0){
          fileOpen = fopen(argv[2], "r");
          // caso der merda
         if(fileOpen == NULL){
            perror("Erro de leitura");
            return 1;
         }
         // concatenação com extenção .hex
          char name[256];
          strcpy(name, argv[2]);
          strcat(name, ".hex");
          fileClose = fopen(name, "w");
          // caso der merda
         if(fileClose == NULL){
            perror("Erro de escrita");
            return 1;
         }
         /* captura um byte de cada vez e escreve
         em um arquivo *.hex */
          while((byte = fgetc(fileOpen)) != EOF){
             fprintf(fileClose, "%X ", byte);   
         }
         // fecha
         fclose(fileOpen);
         fclose(fileClose);   
      } else if(strcmp(argv[1], "-f") == 0){
         // faz a edição para nome original
            char name[256];
         strcpy(name, argv[2]);
         name[strlen(name)-4]='\0';
         fileOpen = fopen(argv[2], "r");
         // caso der merda
         if(fileOpen == NULL){
            perror("Erro de leitura");
            return 1;
         }
         fileClose = fopen(name, "wb");
         if(fileClose == NULL){
            perror("Erro de escrita");
         }
         // faz a leitura do *.hex e salva binario
         while(fscanf(fileOpen, "%X", &byte) == 1){
            fputc((unsigned char)byte, fileClose);            
         }
         // fecha
         fclose(fileOpen);
         fclose(fileClose);
      }
      else{
         // help
          printf("use: ./hexfile -a [arquivo]\n");
          printf("use: ./hexfile -f [arquivo]\n");   
      }
      
       return 0;   
   }

Scripts recomendados

Vi para Windows

Pequeno simulador de Banco de Dados

Cadastro de Alunos Versao 1.0

Criando Playlist com o C#

Arquivo com números aleatórios.


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts