Binário para decimal
Publicado por Rick 23/10/2006
[ Hits: 9.466 ]
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);
}
Converter graus Celsius em Fahrenheit e vice-versa
Implementação de limpar a tela em C
Criptografando sua Home com Gocryptfs para tristeza do meliante
A Involução do Linux e as Lambanças Desnecessárias desde o seu Lançamento
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Discos que não instalam o sistema por erro MBR/GPT no Linux
Hospedagem de Mangás com Kavita e Docker para Acesso Remoto via Tailscale
Aplicar tema e ícones do Ubuntu Cinnamon no Arch Linux sem AUR
Enquete: qual bloco de código C++ é mais legível? (3)
Instalação do driver Epson L3150 [RESOLVIDO] (5)









