Conversor binário

Publicado por Geraldo José Ferreira Chagas Júnior 08/09/2008

[ Hits: 9.678 ]

Homepage: http://prginfo.blogspot.com

Download binto.c




Converte um número em binário para decimal, hexadecimal e quando possível, mostra o caractere referente ao valor ASCII.

  



Esconder código-fonte

#include <stdio.h>
#include <string.h>
#define iifi(c) (((c)=='0') ? (0) : (1))


void intTohex (unsigned long int b, char* hex)
{
   char vet[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
   unsigned long int r;

   r = b % 0x10; hex[7] = vet[r]; b = b >> 0x4;
   r = b % 0x10; hex[6] = vet[r]; b = b >> 0x4;
   r = b % 0x10; hex[5] = vet[r]; b = b >> 0x4;
   r = b % 0x10; hex[4] = vet[r]; b = b >> 0x4;
   r = b % 0x10; hex[3] = vet[r]; b = b >> 0x4;
   r = b % 0x10; hex[2] = vet[r]; b = b >> 0x4;
   r = b % 0x10; hex[1] = vet[r]; b = b >> 0x4;

   hex[0] = vet[b]; 
   hex[8] = '{FONTE}';    
}

unsigned long int binToInt (char *str)
{
   return iifi(str[0])*128 + iifi(str[1])*64 + iifi(str[2])*32 + iifi(str[3])*16 + iifi(str[4])*8 + iifi(str[5])*4 + iifi(str[6])*2 + iifi(str[7]);
}

void arruma (char *dest, char *ori)
{
   int i;
   int t;
   t=strlen(ori)-1;
   for (i=7; i>=0;i--)
   {
      if (t>=0) dest[i]=ori[t]; else dest[i]='0';
      t--;
   }
   dest[8]='{FONTE}';
}

char inToChar (unsigned long int val)
{
   if ((val > 32) && (val < 127)) return val; else return '.';
}

int main (int argc, char* argv[])
{
   char temp[9];
   unsigned long int valInt;
   char c;
   int i;

   if (argc<2)
   {
      printf ("Parametro incorreto.\n");
      printf ("Informe apenas os valores em binário\n");
      return 1;
   }

   for (i=1; i<argc;i++)
   {
      arruma(temp, argv[i]);
      valInt=binToInt(temp);
      intTohex(valInt,temp);
      c = inToChar (valInt);
      printf ("Inteiro=%d   Hexa=%s   char=%c\n",valInt, temp, c);
   }
}

Scripts recomendados

Verificador de senhas: comparando palavras

Limpar string

Joga da forca

Controle de maior / menor de idade (por ano)

Relogio


  

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