Conversor binário
Publicado por Geraldo José Ferreira Chagas Júnior 08/09/2008
[ Hits: 9.782 ]
Homepage: http://prginfo.blogspot.com
Converte um número em binário para decimal, hexadecimal e quando possível, mostra o caractere referente ao valor ASCII.
#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); } }
Problema de Equação do Primeiro Grau
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (7)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (4)
É cada coisa que me aparece! - não é só 3% (4)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta