Ir ao conteúdo
  • Cadastre-se
Tamara Valesi

C converter numero binario para decimal em vetor

Posts recomendados

Gente estou parada mais de horas nesse programa olha o anunciado 

 Escreva um procedimento que preencha um vetor de números inteiros de tamanho tam, apenas com os números zero ou um. Depois informe o número binário resultante deste preenchimento e o valor correspondente em decimal.

void converteBinario( int bin[], int tam)

 

quando faço o codigo ele lê da direita para esquerda, mas para converter eu preciso ir da esquerda para direita

estou tentando inverter o vetor mas n esta indo 

 

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include <locale.h>

#define t 8

int main()
{
    setlocale(LC_ALL,"portuguese");
    int bin[t], dec = 0, i,j,pot;
    int invbin[t],final;
    
    
    
    printf("\nInsira o numero binario separado por espaço: \t");
    for(j=0;j<t;j++){
        scanf("%d", &bin[j]);
    }
    printf("\nO número binario é : ");
    for(i=0;i<t;i++){
      printf("%d",bin);
    }
    printf("\n");
      

    
    for(i=0;i<t;i++){
        if(bin==1){
        
            dec=dec*bin+pow(2, i);
        }
    }
    
    printf("a conversão do numero binario para decimal : %d \n",dec );
}

adicionado 14 minutos depois

pessoal ja consegui 

...

 

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include <locale.h>

#define t 8

int main()
{
    setlocale(LC_ALL,"portuguese");
    int bin[t], dec = 0, i,j,p;
    int invbin[t],final;
    
    
    
    printf("\nInsira o numero binario separado por espaço: \t");
    for(j=0;j<t;j++){
        scanf("%d", &bin[j]);
    }
    printf("\nO número binario é : ");
    for(i=0;i<t;i++){
      printf("%d",bin);
    }
    printf("\n");
      
    final=t-1;
    for(p=0;p<t;p++){
        invbin[p]=bin[final];
        final--;
    }
    
    for(i=0;i<t;i++){
        if(invbin==1){
        
            dec=dec*invbin+pow(2, i);
        }
    }
    
    printf("a conversão do numero binario para decimal : %d \n",dec );
}

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Tamara Valesi     você pode colocar o loop para ir de trás pra frente ,  " DownTo "  ,  e o vetor precisa da posição ,

então seu código poderia ser assim  :

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include <locale.h>
#define t 8
int main(){
    setlocale(LC_ALL,"portuguese");
    int bin[1000],dec=0,m=1,i,j,pot,tam;
    int invbin[t],final;
    printf("informe o tamanho do vetor ");
    scanf("%d",&tam);
    printf("\nInsira o numero binario 1  ou 0 : ");
    for(j=0;j<tam;j++){
        scanf("%d", &bin[j]);
    }
    printf("\nO número binario é : ");
    for(i=0;i<tam;i++){
      printf("%d",bin[i]);/* faltou a posição no vetor */
    }
    printf("\n");
    for(i=tam-1; i>-1; i--){
        if( bin[i] == 1 ){
            dec += bin[i]*m;
        }
        m *= 2;
    }
    printf("a conversão do numero binario para decimal : %d \n",dec );
}

@Tamara Valesi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!