Binário para decimal
Publicado por Rick 23/10/2006
[ Hits: 9.184 ]
Já vi alguns algoritmos de conversão de binário para decimal, mas muito mais complexos que este. Eu queira desenvolver um que utilizasse o método do cálculo natural, exemplo: 100 em binário:
(1 x 2^2) + (0 x 2^1) + (0 x 2^0) = 4
Acho que ficou bom...
/*ALGORITMO BINARIO-> DECIMAL POR OPTIMAL (optimal2600@yahoo.com.br)*/ #include <stdio.h> #include <stdlib.h> int potc(int num, int pot) { int x, old; old=num; if (pot==0) return 1; for(x=1;x<pot;x++) { num = num*old; } return num; } int main(void) { char mat_str[8][5]; int mtr[8], numero[8], dig, dec=0, x, y; system("clear"); printf("Numero de digitos: "); scanf("%d", &dig); __fpurge(stdin); printf("Binario: "); y=dig-1; for (x=0;x<dig;x++) { mat_str[x][0]=getchar(); fflush(stdin); } for (x=0;x<dig;x++) { if (mat_str[x][0] != '0' && mat_str[x][0] != '1') { printf("Apenas numeros binarios!!!\n\n"); exit(1); } } for (x=0;x<dig;x++) mat_str[x][1]='\n'; for (x=0;x<dig;x++) mtr[x]=atoi(mat_str[x]); for (x=0;x<dig;x++) { numero[x] = (mtr[x] * potc(2, y)); y--; } for (x=0;x<dig;x++) dec = dec + numero[x]; printf("Decimal %d\n", dec); return(0); }
Calcula diferença entre o maior e menos número digitado
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
crontab executar em tempos (1)
Formatando cartão de memoria que nao formata[AJUDA] (9)
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (3)