Binário para decimal
Publicado por Rick 23/10/2006
[ Hits: 9.224 ]
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); }
Fibonacci - Modo muito simples
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Solução rápida para o problema do Network Manager conectar mas não navegar
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
Como corrigir o erro chave publica virtual box (1)
Qual driver da NVIDIA instalar? (4)