Binário para decimal
Publicado por Rick 23/10/2006
[ Hits: 9.160 ]
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); }
Mostra valores da tabela ascii
Conversão do número de dias em anos (meu segundo programa em C)
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
Comandos no NixOS não funcionam (0)
De volta para o futuro - ou melhor, para o presente (23)
Plasma 6 com partes em inglês (0)