2 Programinhas em C para conversão de bases
Publicado por Samuel Macedo 06/10/2004
[ Hits: 40.899 ]
Bom, tô mandando 2 códigos juntos na verdade, ao invés de 1. eles servem para converter bases. O primeio converte um numero decimal para um numero em qualquer base. O segundo converte um numero em qualquer base para um numero decimal. Eu ainda começando em C, por isso o código tá bem tosco, cheio de gatilhos, mas como é uma seção com scripts de iniciantes mesmo, acho q não tem problema. Funcionam normal, só q não exibe mensagens de erro se o cara digitar alguma coisa nada a ver... Valeu!
/*Converte um numero na base 10 para um numero em uma base qualquer. -->Samuel Macedo*/ #include <stdio.h> char numparacar(int); main() { long int bcknum,num,base,i,ind=0; char j='A',numimp,vetnum[1000],vetch[1000]; printf("Numero (em base 10): "); scanf("%d",&num); printf("Base para a qual o numero sera convertido: "); scanf("%d",&base); bcknum = num; for(i=0;i<1000;i++) vetch[i] = 0; while(num>0){ numimp = num%base; if(numimp > 9){ numimp = numparacar(numimp); vetch[ind]=1; } vetnum[ind] = numimp; ++ind; num = num / base; } printf("%d(10) = ",bcknum); j=ind; while(vetnum[j]==0)j--; for(;j>=0;j--){ if(vetch[j]==1) printf("%c",vetnum[j]); else printf("%d",vetnum[j]); } printf("(%d)\n",base); } char numparacar(NUM) { int a;char b='A'; for(a=10;a<NUM;a++) b++; return b; } ------------------------------------------------------------------------------------ /*converte de qualquer base para decimal -->Samuel Macedo*/ #include <stdio.h> #include <stdlib.h> #include <ctype.h> int letparaint(char); main() { int numint,i,j,base,valdec=0,valexp,exp; char gt[2],num[100]; scanf("%s",&num); scanf("%d",&base); //printf("numero carregado: %s",num); for(i=0;num[i]!='{FONTE}';i++); exp=i-1; //printf("EXP: %d\n",exp); for(i=0;num[i]!='{FONTE}';i++){ valexp=1; for(j=0;j<exp;j++){ valexp=valexp*base; // printf("valexp: %d\n",valexp); } if(num[i]>='0'&& num[i]<='9'){ gt[0]= num[i]; gt[1]='{FONTE}'; numint = atoi(gt); //printf("numint -> %d\n",numint); } else{ numint = letparaint(num[i]); } valdec+=(numint*valexp); --exp; } printf("Valor decimal: %d\n",valdec); } int letparaint(char LET) { int cont=0,i,j; tolower(LET); for(i=LET;i>'a';i--) ++cont; cont+=10; //printf("---->%d",cont); return cont; }
Número par ou ímpar e positivo ou negativo
Cálculo de Energia de um Corpo
Parte 1 - Sessão de estudo sobre MATRIZES
Ordenação de vetor pelo método Bubblesort
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
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[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