2 Programinhas em C para conversão de bases
Publicado por Samuel Macedo 06/10/2004
[ Hits: 40.964 ]
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úmeros primos da seqüência Fibonacci
Calculo de Área e Diametro do circulo
Algoritmo em C - Ordenação por Inserção
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)
Problemas ao instalar o PHP (10)
Descompactar arquivos winrar no linux (9)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (12)