Binário para decimal
Publicado por Rick 23/10/2006
[ Hits: 9.274 ]
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); }
2 Programinhas em C para conversão de bases
Como fazer raízes a partir de 2 e 3 no c.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
baschrc customizado pegeui vários. (3)
Rust é o "C da nossa geração"? (8)