Pular para o conteúdo

Binário para decimal

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...
Rick rick2600
Hits: 9.482 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

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...
Download bintodec.c Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

/*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);
}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Mis Delta !!!

Operações Com Matrizes

Funções, Ponteiros e Struct

Ordenação

Criptografar e Descriptografar

#1 Comentário enviado por doradu em 01/02/2010 - 14:09h
o q é isso na linha 23?

Contribuir com comentário

Entre na sua conta para comentar.